开发者

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

开发者 https://www.devze.com 2025-09-25 09:19 出处:网络 作者: 骑不快的小欧同学
目录一、场景二、场景分析1.针对于innodb(mysql 事务存储引擎)2.对于MyISAM(MYSQL 非事务存储引擎)总结之前面试的时候遇到一个问题,因为平时自己都是用的mysql 8.0+ 版本所以这里踩了一个坑记录一下
目录
  • 一、场景
  • 二、场景分析
    • 1.针对于innodb(mysql 事务存储引擎)
    • 2.对于MyISAM(MYSQL 非事务存储引擎)
  • 总结

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

    一、场景

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

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

    二、场景分析

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

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

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

    2.对于MyISAM(MYSQL 非事务存储引擎)

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

    总结

    例如:

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

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号