MySQL表中有自增列id,但是表中的id列数据不连续,产生的可能原因是什么?

MySQL表中有自增列id,但是表中的id列数据不连续,产生的可能原因是什么?


可能的情况有如下几种:
    1、虽然表定义了自增主键,但是插入时从全局ID生成器获取ID,导致每个表分配到的ID并不是连续的。
    2、表中数据进行过删除。
    3、session A插入了数据,获取了自增id为10,session B也插入了数据,但session A回滚了,导致id=10的空洞。
    4、设置了innodb_autoinc_lock_mode=2,高并发或批量插入的情况下导致自增ID不连续。
    5、手动调整过AUTO_INCREMENT,导致中间有空洞。
    6、设置步长非1,导致每次自增并不是加1。

PS: 8.0以前修改自增值重启后会丢失,务必注意一下。
原文地址:https://www.cnblogs.com/zhouwanchun/p/13141928.html