网站首页 > 精选文章 正文
结论
- 如果表的类型是 InnoDB,那么是 2;InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行 OPTIMIZE 操作,都会导致最大 ID 丢失。
- 如果表的类型是 MyISAM,那么是 5;因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失。
下面真实模拟下这个问题
使用Innodb
新建表,主键设置自增
设置表引擎为InnoDB
新增数据:
删除234
关闭服务、然后重启服务
重启服务之后,添加数据
结论:
如果表的类型是 InnoDB,那么是 2;InnoDB 表只是把自增主键的最大 ID 记录到内存中,所以重启数据库或者是对表进行 OPTIMIZE 操作,都会导致最大 ID 丢失。
同上面的步骤,使用myIsam
新建表,引擎改为myisam
添加四条数据,id=1,2,3,4,删除id=2,3,4的数据
重启服务:id是5,不是2
结论:
如果表的类型是 MyISAM,那么是 5;因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大ID 也不会丢失。
- 上一篇: 淘宝的数据库,主键是如何设计的?
- 下一篇: 互联网大厂面试:MySQL自增主键id用完了怎么办?
猜你喜欢
- 2025-01-21 阿里二面差点败在这道题:MySQL自增主键为何不是连续的呢?
- 2025-01-21 为什么mysql不推荐使用雪花ID作为主键
- 2025-01-21 面试官竟然问我订单ID是怎么生成的?难道不是MySQL自增主键?
- 2025-01-21 MySQL中如何设置自动递增id主键重新计数从1开始?
- 2025-01-21 面试官:mysql自增长id用完了怎么办?这是我见过最中肯的答案了
- 2025-01-21 9种 分布式ID生成方案,让你一次学个够
- 2025-01-21 互联网大厂面试:MySQL自增主键id用完了怎么办?
- 2025-01-21 淘宝的数据库,主键是如何设计的?
- 2025-01-21 数据库主键一定要自增吗?有哪些场景不建议自增?
- 2025-01-21 随笔:关于主键,除了自增,你还可以这样
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)