InnoDB自增锁解析:MySQL表锁真相与优化策略
自增锁(Auto-inc Locks)是一种特殊的表级锁,专门用于处理向含有AUTO_INCREMENT列的表插入数据的事务。
今天我们将深入探讨InnoDB七种锁类型中的第一种:自增锁。

一、案例场景分析
在MySQL的InnoDB引擎中,使用默认的重复读(RR)隔离级别,假设我们有一张数据表:
t(id AUTO_INCREMENT, name);
表中已有的数据为:
1, shenjian
2, zhangsan
3, lisi
事务A首先执行一条插入语句,但还未提交:
insert into t(name) values(xxx);
随后,事务B也执行一条插入:
insert into t(name) values(ooo);
问题来了:事务B会被阻塞住吗?
二、案例原理剖析
我们知道,InnoDB在RR隔离级别下通过多版本并发控制解决了幻读问题。但在上述场景中:
(1) 事务A先执行insert操作,会生成一条(4, xxx)的记录。因为是自增列,我们无需显式指定id为4,InnoDB会自动递增生成。请注意,此时事务尚未提交。
(2) 接着事务B执行insert操作。假设它不会被阻塞,则会生成一条(5, ooo)的记录。
乍一看这似乎没什么问题。但接下来,
(3) 如果事务A继续插入一条数据:
insert into t(name) values(xxoo);
此时会生成一条(6, xxoo)的记录。
(4) 随后,事务A执行一条查询:
select * from t where id>3;
得到的结果集将是:
4, xxx
6, xxoo
这里出现了奇怪的现象:查询结果中竟然无法查看到id为5的记录。在RR隔离级别下,确实不应该读取到未提交事务所生成的数据。
但这对事务A来说就变得很诡异了:对于一个自增列,事务A连续插入了两条记录,第一条id是4,紧接着的一条却变成了6,中间仿佛凭空消失了一个id值,就像遇到了神秘的“幻影”。
三、自增锁的机制
自增锁正是为了解决这个问题而设计的。它是一种特殊的表级锁,专门控制在具有AUTO_INCREMENT列的表中进行插入操作的事务。在最简单的情况下,如果一个事务正在向表中插入记录,那么所有其他试图插入的事务都必须等待,以确保第一个事务插入的行能够获得连续的主键值。
正如MySQL官方文档所解释的那样:
An AUTO-INC lock is a special table-level lock taken by transactions inserting into tables with AUTO_INCREMENT columns. In the simplest case, if one transaction is inserting values into the table, any other transactions must wait to do their own inserts into that table, so that rows inserted by the first transaction receive consecutive primary key values.
与此同时,InnoDB提供了`innodb_autoinc_lock_mode`配置参数,允许我们调整和改变这种锁的模式与具体行为。
四、假如不是自增列
回顾上面的案例,如果那张表的id列不是自增列,又会是怎样的情形呢?
t(id unique PK, name);
假设表中已有数据:
10, shenjian
20, zhangsan
30, lisi
事务A先执行,在10和20之间插入一行,尚未提交:
insert into t values(11, xxx);
事务B后执行,同样试图在10和20之间插入一行:
insert into t values(12, ooo);
在这种情况下,就不再需要使用自增锁了。那么问题来了:
此时会使用什么锁呢?事务B又是否会被阻塞呢?
知其然,更要知其所以然。
理解问题的思路,往往比记住结论更为重要。
补充说明:本文讨论的MySQL知识基于5.6版本。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
加密货币市场暴跌超12万人爆仓原因与应对策略
2026年5月23日,加密货币市场突发大幅下跌,引发广泛跳水行情。此次波动导致超过十二万投资者仓位爆仓,市场普遍遭受显著损失。
上海科技节褚君浩院士对话青年:科研初心与未来展望
5月23日,上海科技节开幕式现场,一场跨越时空的对话震撼上演。当追光灯同时照亮舞台上的褚君浩院士与全息技术呈现的“少年褚君浩”时,科学与人文的边界被巧妙弥合。这场由上海交响乐团演绎的特别节目《写给未来的信》,通过院士亲述的一封封书信,完整串联起一位顶尖科学家从青春求索到成就斐然的壮阔科研历程。现场掌
雷神新款27英寸4K显示器上市 160Hz MiniLED屏售2299元
近期,显示器市场迎来一款颇具亮点的创新产品。雷神在京东平台正式上架了型号为“CU27F160M-EVO”的27英寸电竞显示器,其核心卖点在于独特的“双模”切换功能——用户可根据需求,在4K@160Hz的超清高刷模式与FHD@320Hz的极致电竞模式间自由转换。产品官方定价为2420元,首发期间限时优
DeepSeek V4 Pro API价格大幅下调至原价四分之一
DeepSeek-V4-ProAPI宣布永久降价至原价的四分之一。原定于2026年结束的2 5折优惠将转为长期定价标准,输入与输出费用均大幅降低。此举为开发者和企业用户提供了明确的成本利好,市场预期的优惠后涨价并未发生。
神舟二十三号发射窗口精准解析 为何分秒不容错过
神舟二十三号瞄准5月24日23时08分发射,这一“发射窗口”需满足轨道对接、光照、气象、测控等多重约束。空间站对接等任务常要求“零窗口”发射,分秒不差,极致考验航天系统的可靠性与协同能力。这精准瞬间凝聚多学科智慧与庞大工程协作,是中国航天高精度能力的集中体现。
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

