MySQL:bigint 与 int
Posted
技术标签:
【中文标题】MySQL:bigint 与 int【英文标题】:MySQL: bigint Vs int 【发布时间】:2011-06-13 18:07:09 【问题描述】:我一直在使用 int(10) 并且刚刚注意到 Wordpress 使用 bigint(20) - 使用 bigint(20) 和 int(10) 进行 id 自动递增有什么不同? id 列应该使用哪一个?
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
对比
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
谢谢。
【问题讨论】:
问题是,如果性能较差:***.com/questions/9376610/… 【参考方案1】:区别纯粹在于可以存储的最大值(我相信 bigint(20) 为 18,446,744,073,709,551,615,int(10) 为 4,294,967,295),根据 mysql Numeric Types 手册页上的详细信息。
顺便说一句,除非您使用 ZEROFILL,否则 (20) 和 (10) 的使用在很大程度上是无关紧要的。 (即:它实际上并没有改变存储数字的大小 - 这完全取决于类型。)
但是,实际上应该注意的是,除非您是真正活跃的博主,否则您不太可能很快达到这些限制中的任何一个.
【讨论】:
需要注意的是,bigint 消耗 8 个字节的存储空间,而 int 消耗 4 个字节。有符号(mysql 默认)int 允许值 > 20 亿;因此,在绝大多数情况下,它都是 id 列的绝佳候选者。当然,除非您实际上是在处理需要关注列类型/存储的巨大记录集,否则 bigint 与 int 并不是非常重要【参考方案2】:唯一的区别是类型的范围。 INT
是 32 位长,而 BIGINT
是 64 位长,因此它可以存储更大的数字,例如 123456789123456789
(不能存储为 INT
)。
这里是 MySQL 整数类型的完整列表:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
【讨论】:
以上是关于MySQL:bigint 与 int的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 中的类型:BigInt(20) 与 Int(20)
MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的差别 图 浮点型:命令