一、问题背景
在mysql中用自增列作为主键时,先往表里插入5条数据,此时表里数据id为1、2、3、4、5,如果此时删除id=4、5的数据后,再重启数据库,重启成功后向表里插入数据的时候,innodb、myisam引擎下ID分别是从几开始增加?
二、使用InnoDB引擎
- 在mysql 8.0版本之前,表的自增列变量 auto_increment计数器会把值存放在内存中,不会写入磁盘。一旦 MySQL 服务重启,这个值就丢了。InnoDB 引擎会根据表中现有的数据重新计算该计数器的值:获取表中最大的自增主键 ID 作为auto-increment 计数器的最大计数。针对上述问题,重启后ID是从4开始。
- 在mysql 8.0版本之后,每当计数器的值有变,InnoDB 会将其写入 redo log,保存到引擎专用的系统表中。重启后,会延续递增,而不是重置。
三、使用MyIsam引擎
自增ID保存在数据文件中,重启后会延续递增。
标签:自增,重启,表中,计数器,引擎,Mysql,ID From: https://www.cnblogs.com/aleda-territory/p/17506439.html