id用int还是bigint

如题所述

你好根据你的描述,可以供你参考如下:

    tinyint:无符号范围0-255,带符号范围-128~127,需要1个字节存储。

    smallint:带符号范围:-2^15 (-32,768)~2^15 - 1 (32,767) ;无符号范围:0~65535,需要2个字节存储。

    int:带符号范围:2^31-1 ~ -2^31,即:2147483647 ~ -2147483648;无符号unsigned范围:2^32-1 ~ 0,即:4294967295 ~ 0,需要4个字节存储。

    bigint:带符号范围: -9223372036854775808~9223372036854775807;无符号范围:0~18446744073709551615,需要8个字节存储。

根据阿里发布的开发规范手册中:关于mysql建表规范,

    如果确定在未来三年内表的数据会超过int的范围,那么就用bigint来作为id的数据类型

    否则考虑到mysql性能,建议使用int;

    如果确定了表的记录条数很小,在255之内,那么建议用tinyint。

总结:

在工作中具体用哪一个数据类型,还是需要根据具体需求来使用。

如果是平常的一个demo,随便用哪个都行。但还是建议养成考虑性能方面来建表。


如果觉得满意,望采纳!提问者的点赞和采纳就是我们的动力和追求,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-26
bigint 带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。
int 普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

就是值得范围的问题,如果需要大于int的范围,就用bigint.
相似回答