当前位置: 代码网 > it编程>数据库>Mysql > mysql自增长ID字段丢失问题及解决

mysql自增长ID字段丢失问题及解决

2025年09月23日 Mysql 我要评论
之前面试的时候遇到一个问题,因为平时自己都是用的mysql 8.0+ 版本所以这里踩了一个坑记录一下一、场景假如在对一个有自增长id的一个表新增 id分别为 1,2,3,4,5数据时,在进行删除id

之前面试的时候遇到一个问题,因为平时自己都是用的mysql 8.0+ 版本所以这里踩了一个坑记录一下

一、场景

假如在对一个有自增长id的一个表新增 id分别为 1,2,3,4,5数据时,在进行删除id 为5的数据成功后

mysql 宕机了,重启了对这张表重新插入数据,那么这个自增长id 会从多少开始

二、场景分析

1.针对于innodb(mysql 事务存储引擎)

在mysql 8.0 版本之前,mysql对于自增长id属性auto-increment 的值都是存储在内存中的,当mysql发生重启或者宕机的情况下,内存中的值会丢失,这个属性就会被重新计算,计算方式是max(自增长id)+1

在mysql 8.0 之前 针对这个问题进行了修复,把属性auto-increment 放入到了本地磁盘中进行一个持久化的操作

2.对于myisam(mysql 非事务存储引擎)

myisam 的话在mysql 8.0和8.0之后都不会发生自增id丢失的情况

总结

例如:

上述问题主要需要根据mysql版本和不同存储引擎是否对自增长id进行一个持久化操作来进行分析不同的情况

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com