与INT相比,BIGINT mysql的性能
我试图找出如果将主键更改为BIGINT(20)时表的性能是否会下降。目前,我正在使用INT(7),并且已经有大约
。我已经搜索了很多东西,但只发现它使用了更多的磁盘空间(这很明显)。
我所有的ID现在都有7位数字,但是我的客户希望更改为8位数字。将来我将无法轻松更改软件,因此我考虑现在使用BIGINT(20)以防万一。即使我不需要使用BIGINT也会降低性能吗?
有经验的人对速度和性能有建议吗?
回答:
要回答您的问题:是的,它的性能会降低。显然,类型越大,表越大,查询就越慢(I /
O越多,索引越大,访问时间越长,结果适合各种缓存的可能性越小等等)。因此,根据经验:始终使用适合您所需的 。
话虽如此,
。为什么?因为当到达溢出INT的地步时,BIGINT是唯一的解决方案,您将不得不接受它。同样在这一点上(考虑到您正在使用自动增量PK,您将超过40
行),您将遇到更大的性能问题,并且与INT相比,BIGINT的开销将是您所关注的最少。
因此,请考虑以下几点:
- 如果不需要负值,请使用UNSIGNED,这将使限制加倍。
- UNSIGNED INT最大值是4.294.967.295。如果您使用的是自动递增PK,而 。您现在甚至可以使用MEDIUMINT,除非您打算真正快速地增长。(请参阅http://dev.mysql.com/doc/refman/5.1/en/integer-types.html)
- 类型后面括号中的数字 类型 。INT(7)与INT(8)或INT(32)相同。如果您指定ZEROFILL,则用于指示显示宽度(请参见http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html)
以上是 与INT相比,BIGINT mysql的性能 的全部内容, 来源链接: utcz.com/qa/434274.html