首页 > 数据库技术 > 详细

mysql 自增主键为什么不是连续的?

时间:2019-03-04 15:37:02      阅读:239      评论:0      收藏:0      [点我收藏+]

由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑

 

MyISAM 引擎的自增值保存在数据文件中

nnoDB 引擎的自增值,其实是保存在了内存里,并且到了 MySQL 8.0 版本后,才有了“自增值持久化”的能力,也就是才实现了“如果发生重启

表的自增值可以恢复为 MySQL 重启前的值,在 MySQL 5.7 及之前的版本,自增值保存在内存里

每次重启后,第一次打开表的时候,都会去找自增值的最大值 max(id)

然后将 max(id)+1 作为这个表当前的自增值

 

到账自增主键不连续 

1  唯一键冲突是导致自增主键 id 

2 事务回滚也会导致

3  语句执行过程中,第一次申请自增 id,会分配 1 个;

  1个用完以后,还是这个语句,第三次申请自增 id,会分配 2 个;

  2 个用完以后,还是这个语句,第三次申请自增 id,会分配 4个

  如果只用到了iD3 id4就被浪费了 之后再有插入语句 自增id就是从id5开始

mysql 自增主键为什么不是连续的?

原文:https://www.cnblogs.com/gjclr/p/10470792.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!