首页 文章

MySQL主键和VARCHAR(255)

提问于
浏览
2

我有一个数据库使用VARCHAR(255)作为表的主键,它们看起来像GUID . 对于表现来说,Int会不会更好?

2 回答

  • 0

    这取决于你的存储引擎,但一般来说int / bigint会更好 . 如果您使用innodb,由于聚簇索引的工作方式,uuid / guid对于主键来说是一个糟糕的选择 . 阅读本blog以了解更多相关信息 . 总而言之,密钥是按范围存储的,因为uuids是随机的,它们会使插入和查找效率降低,因为你会通过读取和写入每行的整个内存块来破解缓存 .

  • 2

    Int在磁盘上占用的空间更少,因此在搜索时您需要更少的I / O.只要范围符合您的需要,我会说int会更快 .

相关问题