美文网首页
为什么总是强调使用自增ID为主键?

为什么总是强调使用自增ID为主键?

作者: 爱钓鱼的码农 | 来源:发表于2020-11-02 08:49 被阅读0次

1、自增主键的插入数据模式,正符合了我们前面提到的递增插入的场景。每次插入一条新记录,都是追加操作,都不涉及到挪动其他记录,也不会触发叶子节点的分裂、而有业务逻辑的字段做主键,则往往不容易保证有序插入,这样写数据成本相对较高。
2、业务侧不需要为了主键的唯一性烦恼,MySQL自增ID保证了唯一性。
Question:
假设你的表中确实有一个唯一字段,比如字符串类型的身份证号,那应该用身份证号做主键,还是用自增字段做主键呢?
由于每个非主键索引的叶子节点上都是主键的值。如果用身份证号做主键,那么每个二级索引的叶子节点占用约 20 个字节,而如果用整型做主键,则只要 4 个字节,如果是长整型(bigint)则是 8 个字节。显然,主键长度越小,普通索引的叶子节点就越小,普通索引占用的空间也就越小。

相关文章

网友评论

      本文标题:为什么总是强调使用自增ID为主键?

      本文链接:https://www.haomeiwen.com/subject/krppvktx.html