framework
framework/mysql/transaction/index.md
medium
framework-mysql-transaction-index
InnoDB 事务与锁 4 个独立决策点 — 隔离级别选 RR/RC、MVCC 与当前读加锁、间隙锁与死锁规避、事务范围控制。Use when 配隔离级别 / 写 FOR UPDATE / 排查死锁或锁等待 / 评审 @Transactional 范围时。
子项索引
| 子项 | 一句话 |
|---|---|
| mysql-isolation-level skill | InnoDB 隔离级别选型 — 默认 RR 用一致性快照防不可重复读/幻读,RC 锁范围小更适合高并发短事务,区分快照读与当前读 |
| mysql-mvcc-and-locking-read skill | MVCC 一致性视图与当前读加锁 — 普通 SELECT 走 undo 多版本不加锁,需读最新并锁定时用 SELECT FOR UPDATE(写锁)或 LOCK IN SHARE MODE(读锁) |
| mysql-gap-lock-deadlock skill | InnoDB 间隙锁/Next-Key Lock 与死锁规避 — RR 下范围当前读会锁间隙挡插入,多事务交叉加锁顺序不一致即死锁 |
| mysql-transaction-scope skill | 事务边界控制 — 事务要短,@Transactional 方法内禁裹 RPC/HTTP/MQ 等远程调用和大循环,长事务撑大 undo、占连接、加锁久 |
MySQL · 事务与锁索引
InnoDB 事务/锁拆成 4 个独立决策点,按你正在做的事下钻:
| 你在做什么 | 进哪个 |
|---|---|
| 选隔离级别、搞不清快照读和当前读 | isolation-level |
| 要加锁读数据(FOR UPDATE / 共享锁)、理解 MVCC 可见性 | mvcc-and-locking-read |
| 排查死锁、锁等待超时、间隙锁挡插入 | gap-lock-deadlock |
| 事务太长、@Transactional 裹了 RPC/大循环 | transaction-scope |
链接
- 上层:
../index.md - 兄弟维度:
../index/index.md·../diagnosis/index.md - 相关:
../../spring-boot/index.md(@Transactional 基础用法)·../../redis/distributed-lock.md(跨进程锁,不同于行锁)