将 bigint 列作为 mysql 的主键是否存在一些问题?

Mr2*_*2ks 2 mysql sql

我需要知道是否可以将 bigint 列设置为主键?

小智 5

您可以使用 BIGINT 作为主键,但会有一些惩罚。

BIGINT 在磁盘存储上占用的空间比 INT 多,使用 BIGINT 作为主键(或任何索引)会增加索引的大小,可能会增加一倍。

这可能会对搜索索引的性能产生影响,并使运行查询的速度变慢。

我建议除非您计划在一个表中插入超过 21 亿行,否则您应该只使用 INT。否则,您将失去性能。

如果您计划在一张表中进行 21 亿次以上的插入,您将需要做比在 SuperUser.com 上询问更多的研究。

  • 主键应该是无符号的,这样它实际上可以处理 2^32 - 1 行——大约 4.29B。 (2认同)