MySQL:自增不连续的几种情况总结

自增实际上是单个表上的一个计数器,对于简单的insert语句来讲肯定都是每次+1的,但是对于批量就有可能预先分配一些。一旦抬升不会因为错误或者回滚而降低,简单总结一下常见的情况,

  • 事务回滚,计数器增加
  • 语句报错,计数器增加
  • 自己填充自增值,抬高计数器
  • 参数innodb_autoinc_lock_mode为2的时候(8.0默认),insert select 类似批量导入数据,可能导致自增浪费一部分,但是却避免了自增锁,类似

| 1198 | g    | | 1199 | g    | | 1200 | g    |  ->gap | 1256 | g    |  ->gap | 1257 | g    |