Mysql重启后,自增ID从几开始?

一、问题背景

在mysql中用自增列作为主键时,先往表里插入5条数据,此时表里数据id为1、2、3、4、5,如果此时删除id=4、5的数据后,再重启数据库,重启成功后向表里插入数据的时候,innodb、myisam引擎下ID分别是从几开始增加?

二、使用InnoDB引擎

  1. 在mysql 8.0版本之前,表的自增列变量 auto_increment计数器会把值存放在内存中,不会写入磁盘。一旦 MySQL 服务重启,这个值就丢了。InnoDB 引擎会根据表中现有的数据重新计算该计数器的值:获取表中最大的自增主键 ID 作为auto-increment 计数器的最大计数。针对上述问题,重启后ID是从4开始。
  2. 在mysql 8.0版本之后,每当计数器的值有变,InnoDB 会将其写入 redo log,保存到引擎专用的系统表中。重启后,会延续递增,而不是重置。

三、使用MyIsam引擎

自增ID保存在数据文件中,重启后会延续递增。

posted @ 2023-06-26 18:11  翊梦  阅读(423)  评论(0)    收藏  举报