MySQL-自增主键

AUTO_INCREMENT

自增主键可以让主键仅可能的保持递增顺序插入,让索引更紧凑,但是可能会暴露业务数据,黑客可以根据一个id推断其它id,分布式场景可能存在抢主键问题。

自增主键保存在哪里?

MyISAM引擎自增主键保存在数据文件中,即使重启也不会丢失。
InnoDB在8.0以前保存在内存里,每次重启需要寻找数据库的最大主键值。
8.0之后保存在redo日志里。

自增主键一定连续吗?

不一定。

  1. 唯一约束或外键约束冲突导致事务回滚。
  2. 无法计算一次性会插入多少数据时
  3. 修改了auto_increment_increment变量;

自增主键申请策略

对于不确定一次性会插入多少条数据时,会采取指数分配策略。
第一次申请1个,不够用申请两个,再不够用申请4个,再不够用申请8个,依次类推。

自增主键用完了怎么办

用完了会报错,不再递增,最多2^31 -1 。

修改自增属性

auto_increment_increment 和auto_increment_offset两个变量。

posted @   店里最会撒谎白玉汤  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示