一尘不染

与INT相比,BIGINT mysql的性能

mysql

我试图找出如果将主键更改为BIGINT(20)时表的性能是否会下降。目前,我正在使用INT(7),并且已经有大约
300.000个条目具有大ID(7或8位数字) 。我已经搜索了很多东西,但只发现它使用了更多的磁盘空间(这很明显)。

我所有的ID现在都有7位数字,但是我的客户希望更改为8位数字。将来我将无法轻松更改软件,因此我考虑现在使用BIGINT(20)以防万一。即使我不需要使用BIGINT也会降低性能吗?

有经验的人对速度和性能有建议吗?


阅读 1405

收藏
2020-05-17

共1个答案

一尘不染

要回答您的问题:是的,它的性能会降低。显然,类型越大,表越大,查询就越慢(I /
O越多,索引越大,访问时间越长,结果适合各种缓存的可能性越小等等)。因此,根据经验:始终使用适合您所需的 最小类型

话虽如此, 性能并不重要
。为什么?因为当到达溢出INT的地步时,BIGINT是唯一的解决方案,您将不得不接受它。同样在这一点上(考虑到您正在使用自动增量PK,您将超过40
亿 行),您将遇到更大的性能问题,并且与INT相比,BIGINT的开销将是您所关注的最少。

因此,请考虑以下几点:

2020-05-17