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以前修改自增值重启后会丢失,务必注意一下。