我有一个使用VARCHAR(255)作为表的主键的数据库,它们看起来像GUID。 Int不会更好地表现吗?
答案 0 :(得分:2)
这取决于您的存储引擎,但一般来说int / bigint会更好。如果您使用innodb,由于聚簇索引的工作方式,uuid / guid对于主键来说是一个糟糕的选择。阅读此blog以了解有关它的更多信息。总而言之,密钥是按范围存储的,因为uuids是随机的,它们会使插入和查找效率降低,因为你会通过读取和写入每行的整个内存块来破解缓存。
答案 1 :(得分:0)
Ints在磁盘上占用的空间更少,因此在搜索时您需要更少的I / O.只要范围符合您的需要,我会说int会更快。