为什么一般用自增列作为主键?

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么一般用自增列作为主键?相关的知识,希望对你有一定的参考价值。

为什么一般用自增列作为主键?

为什么一般用自增列作为主键?

  • 如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页
  • 如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新记录都要被插到现有索引页的中间某个位置,此时mysql不得不为了将新记录插到合适位置而移动数据,这增加了很多开销,同时会增加大量的碎片

1.从业务上来说
在设计数据库时不需要费尽心思去考虑设置哪个字段为主键。然后是这些字段只是理论上是唯一的,例如使用图书编号为主键,这个图书编号只是理论上来说是唯一的,但实践中可能会出现重复的        情况。所以还是设置一个与业务无关的自增ID作为主键,然后增加一个图书编号的唯一性约束。


2.从技术上来说
如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。 总的来说就是可以提高查询和插入的性能。

参考:Why do we use primary key auto increment, and not just auto_increment?

参考:sql

参考:为什么要使用自增ID作为主键

以上是关于为什么一般用自增列作为主键?的主要内容,如果未能解决你的问题,请参考以下文章

关于uuid与自增列的选择

怎么取消自增列上的聚集索引

常见的数据库方面问题

面试中有哪些经典的数据库问题?

Java面试中常问的数据库方面问题

MySql 主键一般用自增ID还是UUID