我读到如果表键是整数而不是 char(36) UUID,mysql 可以更好地处理索引和搜索。
是否值得转换为 int(10)?
注意:我们只使用 1 台服务器,目前必须计划同时使用多个数据库,因此消除了使用 UUID 的一个重要原因。如果有区别的话,我们的表也是 InnoDB。
提前致谢。
最佳答案
通常 RDBMS 可以比其他数据类型更有效地处理整数键作为 PK。原因是它如何为列建立索引,所以是的:只要您不需要字符串(或其他类型的)键,您应该始终使用整数。
但是:CHAR(36) 和 INT(10) 远非相等,因为 INT(10) 比 CHAR(36) 多小。我不知道,如果您需要这么多不同的 key ,但您应该记住这一点。
更新,完成最后一段:
INT(10)
是 32 位,CHAR(36)
是 36 - ^Byte^(= 288 位)。这不仅意味着 INT
占用的空间更少,还意味着 CHAR(36)
具有大约 4 倍的不同键。
关于php - Mysql PK 和 FK char(36) 与 int(10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091045/