MySQL 主键和 VARCHAR(255)

标签 mysql primary-key

我有一个数据库使用 VARCHAR(255) 作为表的主键,它们看起来像 GUID。 Int 不是更适合性能吗?

最佳答案

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

关于MySQL 主键和 VARCHAR(255),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827613/

相关文章:

mysql - SQL 对于给定的主键,我想添加匹配的数据

mysql - PrimaryKey 需要一直自增吗?

python - 类型错误 : 'long' object has no attribute '__getitem__' for MySQL

mysql - sql 日期比较仅在年份为第一时才有效

需要 mySQL 查询帮助

sql - 复合主键是否也为每一列单独创建索引?

database - Oracle:查找主键 - PK 和 NN

mysql - 从批处理脚本中转义 MYSQL 插入

mysql - 再次mysql "count distinct"

sql - 更改复合主键列顺序,避免暴露没有主键的表