mysql:当插入20条数据,删除第4,5,6条数据,重启后,myisam是从21开始插入,innodb是从18开始(第7-20会变为4-17吗),还是先补充4,5,6呢,亦或是还是从21开始呢?
全部评论
MySQL自增变量auto_increment值重启后丢失,只适用于innodb表,myisam表并不会丢失。 MySQL 8.0 修复了auto_increment值重启后丢失的问题。
点赞 回复 分享
发布于 2020-12-07 16:55
MySQL innodb表的自增变量的值是内存中的临时值,在MySQL重启后就会丢失,MySQL重启时该值以当前表中自增字段的最大值确定下次自增值; MySQL的这个问题,无形中给业务埋下了坑,某些业务依赖自增ID来生成唯一值,当删除一些记录并重启MySQL后,新生成的ID可能与之前的ID有重复,导致ID冲突,因此任何依赖于auto_increment 值的业务逻辑,都需要慎重,要充分了解MySQL auto_increment的实现方式,避免踩坑;
点赞 回复 分享
发布于 2020-12-07 16:56
您好,这些大概我知道,就是我描述的问题,innodb以当前表中自增字段的最大值确定下次自增值,那是不是以21开始呢
点赞 回复 分享
发布于 2020-12-07 17:24

相关推荐

拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务