4、Innodb为什么要用自增id作为主键?

如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页 写满,就会自动开辟一个新的页。

如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录 都要被插到现有索引页得中间某个位置, 频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的 索引结构,后续不得不通过OPTIMIZE TABLE(optimize table)来重建表并优化填充页面。

原文地址:https://www.cnblogs.com/crbhf/p/15143450.html