如果我在MySQL中存储int(255),那么MAX数是多少?

DNB*_*ims 25 mysql int

我在mysql中使用int(255)作为我的id.这够长吗?如果我有大约1,000,000条记录....谢谢.

Pau*_*aul 51

有些东西可能只是转换给int(11)你.由于a中不能包含255个可见数字int,因此最大值将为2147483647.

如果你需要更多,你可以将它设置为无符号,因为我假设你没有负面的ID然后你可以达到4294967295.

如果你有超过40亿条记录(如果你现在只有100万条记录的话,这种情况就不太可能了),那么你可以使用一条bigint代替,这样你可以存储数字18446744073709551615,当然需要花费更多的存储空间.

  • 是的,没有整数将显示为255个字符.最长的是(11)足够用于`-`符号和10位数.如果您使用的是unisigned int,那么您也可以将其设置为int(10) (4认同)

gbn*_*gbn 8

-2147483648到2147483647,根据有符号32位整数值的文档

255只是显示宽度,不影响值的范围


xda*_*azz 6

INTmysql使用4字节的存储,并从范围-2147483648到2147483647.如果使用unsigned int,则范围为0到4294967295.


Dee*_*ele 5

如果是unisgned,从0到4 294 967 295,那就足够了.

更多信息在mysql文档中.

  • @gbn,问题不是关于任何标准,而是关于具体情况.如果家伙不知道数据类型并且提到INT并且他想将它用于ID字段,那意味着,家伙不知道SQL,我给新手建议使用ID的无符号值,并提到它可以容纳多少个字段. ..答案的价值在于建议,我给了......来吧,这是胡说八道...... (5认同)
  • @gbn,你觉得我的答案中前两个字很难读? (3认同)

Roc*_*ite 5

看到这个博客.

SELECT ~0 as max_bigint_unsigned
,      ~0 >> 32 AS max_int_unsigned
,      ~0 >> 40 AS max_mediumint_unsigned
,      ~0 >> 48 AS max_smallint_unsigned
,      ~0 >> 56 AS max_tinyint_unsigned
,      ~0 >> 1  AS max_bigint_signed
,      ~0 >> 33 AS max_int_signed
,      ~0 >> 41 AS max_mediumint_signed
,      ~0 >> 49 AS max_smallint_signed
,      ~0 >> 57 AS max_tinyint_signed
\G

*************************** 1. row ***************************
   max_bigint_unsigned: 18446744073709551615
      max_int_unsigned: 4294967295
max_mediumint_unsigned: 16777215
 max_smallint_unsigned: 65535
  max_tinyint_unsigned: 255
     max_bigint_signed: 9223372036854775807
        max_int_signed: 2147483647
  max_mediumint_signed: 8388607
   max_smallint_signed: 32767
    max_tinyint_signed: 127
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)