我在mysql中使用int(255)作为我的id。这够长吗?如果我有大约1,000,000条记录....谢谢。
答案 0 :(得分:51)
可能只是将其转换为int(11)
。由于int
中不能包含255个可见数字,因此最大值为2147483647
。
如果你需要更多,你可以将它设置为无符号,因为我假设你没有负面ID,那么你最多可以4294967295
。
如果您将拥有超过40亿条记录(如果您目前只有100万条记录,则非常不可能),那么您可以使用bigint
代替,这样您就可以存储最多{{ {1}}当然需要更多的存储空间。
答案 1 :(得分:8)
答案 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)