避免使用字符串类型作为标识列:
- 消耗空间。
- 比数字类型慢(MyISAM 中对字符串使用压缩索引,查询会慢)。
对于 MD5()、UUID() 生成的随机字符串,这些值会分布在很大的空间内,导致 insert、select 语句变慢:
- insert 会随机写入不同位置,使得 insert 慢;导致页分裂、磁盘随机访问、对于聚簇索引引擎还会产生索引碎片。
- select 会慢,逻辑上相邻的行分布在磁盘、内存的不同位置。
- 随机值会使缓存效果变差,缓存的访问局部性原理失效;内存太小,导致频繁刷新、不命中。
MySQL 避免使用字符串类型作为标识列
原文:https://www.cnblogs.com/miaooooo/p/12373846.html