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

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

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开始

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值