← 学习中心

数据库:事务、隔离级别与锁

ACID、四种隔离级别与并发问题,MySQL 行锁/间隙锁/Next-Key Lock 与死锁。

本节你将能

说清事务隔离级别如何取舍,以及 MySQL 在 RR 下如何用锁防幻读。

核心要点

  • ACID:原子性(undo log)、一致性、隔离性(MVCC/锁)、持久性(redo log)。
  • 并发问题:脏读、不可重复读、幻读;隔离级别 RU/RC/RR/串行化逐级加锁。
  • MVCC:快照读靠 undo 版本链 + ReadView,实现 RR 下可重复读。
  • 锁:行锁(Record)、间隙锁(Gap)、Next-Key Lock(锁区间防幻读);RC 只用行锁。
  • 死锁:交叉加锁;DB 检测等待图回滚代价小的事务;业务按固定顺序加锁规避。

面试连招

常被追问:RR 怎么解决幻读?MVCC 能否完全避免幻读?Next-Key Lock 是什么?

常见坑

在 RC 下误以为无幻读;大事务持有锁久引发死锁;用不稳定的条件做间隙锁范围。

数据库:事务、隔离级别与锁 - 生命科学与前沿科技学习平台 | 必学必会