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

时间:2011-08-24 06:29:48

标签: mysql int

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

5 个答案:

答案 0 :(得分:51)

可能只是将其转换为int(11)。由于int中不能包含255个可见数字,因此最大值为2147483647

如果你需要更多,你可以将它设置为无符号,因为我假设你没有负面ID,那么你最多可以4294967295

如果您将拥有超过40亿条记录(如果您目前只有100万条记录,则非常不可能),那么您可以使用bigint代替,这样您就可以存储最多{{ {1}}当然需要更多的存储空间。

答案 1 :(得分:8)

对于带符号的32位整数值,根据docs

-2147483648到2147483647

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

答案 2 :(得分:6)

INT中的mysql使用4字节存储空间,范围从 -2147483648到2147483647 。如果使用unsigned int,则范围为 0到4294967295

答案 3 :(得分:5)

如果是无符号的,从0到4 294 967 295,那就足够了。更多信息in mysql docs

答案 4 :(得分:5)

请参阅this blog

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)