MySQL自增列ID的面试题--AUTO_INCREMENT

0    93    1

Tags:

👉 本文共约305个字,系统预计阅读时间或需2分钟。

在一张表中,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把MySQL重启,再Insert一条记录,
这条记录的ID是18还是15?
在MySQL 8.0之前,对于MyISAM和InnoDB的表,因为存储引擎对于自增列的实现机制不同,ID值也会有所不同,
对于InnoDB存储引擎的表,ID是按照max(id)+1的算法来计算的。在MySQL 8.0之后,InnoDB的自增列信息写入了共享表空间中,
所以服务重启之后,还是可以继续追溯这个自增列的ID变化情况的。
所以,对于MyISAM表来说,若数据库重启后,则ID值为18;
对于InnoDB表来说,若数据库重启后,则对于MySQL 8.0来说,ID值为18,
对于MySQL 8.0之前的数据库来说,则数据库重启后,ID值为15。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部