MySQL 锁机制和事务隔离级别是什么关系

105次阅读
没有评论

有关系,而且关系很紧。很多锁看起来复杂,本质上都是数据库为了实现不同隔离级别而使用的手段。

先抓住核心结论

隔离级别决定数据库要保护到什么程度,锁机制负责把这种保护真正执行出来。规矩是隔离级别定的,工具是锁提供的。

读已提交通常更克制

在读已提交下,数据库更关注“不要读到未提交数据”,因此锁范围通常更小,很多场景主要依赖记录锁,不会像可重复读那样积极地锁住范围。

可重复读为什么更容易出现范围锁

因为它要尽量避免同一事务里前后两次查询结果变化,所以遇到范围查询时,InnoDB 常会结合间隙锁和记录锁,也就是临键锁,去拦住可能插入的新记录。

是不是所有场景都会锁很大

也不是。比如走唯一索引等值查询时,数据库能更精确地定位目标,锁范围往往会缩小,并不一定每次都锁整段区间。

实际排查时怎么看

看 SQL 是否命中索引、是否是范围条件、当前事务隔离级别是什么。这三件事基本决定了锁会不会扩大。

正文完
 0
bdspAdmin
版权声明:本站原创文章,由 bdspAdmin 于2026-03-25发表,共计383字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)