我有一个数据库使用 VARCHAR(255) 作为表的主键,它们看起来像 GUID。 Int 不是更适合性能吗?
最佳答案
这取决于你的存储引擎,但一般来说 int/bigint 会更好。如果您使用的是 innodb,由于聚簇索引的工作方式,uuid/guid 对于主键来说是一个糟糕的选择。阅读此 blog了解更多信息。总而言之,键是按范围存储的,并且由于 uuid 是随机的,它们会使插入和查找的效率降低,因为您会在为每一行读取和写入整个内存块时破坏缓存。
关于MySQL 主键和 VARCHAR(255),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827613/