<返回更多

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

2021-08-11    天行者一号
加入收藏

结论

 

 

下面真实模拟下这个问题

 

使用Innodb

 

新建表,主键设置自增

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

 

设置表引擎为InnoDB

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

新增数据:

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

删除234

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

关闭服务、然后重启服务

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

重启服务之后,添加数据

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

结论:

 

如果表的类型是 InnoDB,那么是 2;InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行 OPTIMIZE 操作,都会导致最大 ID 丢失。

 

同上面的步骤,使用myIsam

 

新建表,引擎改为myisam

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

添加四条数据,id=1,2,3,4,删除id=2,3,4的数据

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

重启服务:id是5,不是2

 

把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 


把 Mysql 重启,主键自增id还会保持重启之前的值吗?

 

 

结论:

 

如果表的类型是 MyISAM,那么是 5;因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>