mysql事务回滚后,自增ID依然自增
因为innodb的auto_increament的计数器记录的当前值是保存在内存中的,并不是存在于磁盘上。
当mysql在server运行时,这个计数值只会随着insert事务增长,且不会随着delete而减少。
而当mysql server启动时,当需要去查询auto_increment计数值时,mysql便会自动执行:<SELECT MAX(id) FROM 表名
FOR UPDATE/>语句来获得当前auto_increment列的最大值,然后将这个值放到auto_increment计数器中。
所以就算Rollback MySQL的auto_increament计数器也不会作负运算。