§05 SQL 实验
锁等待与死锁甘特图
两事务、两个资源、相反的加锁顺序——循环等待如何在时间轴上形成死锁, InnoDB 又如何选 victim 回滚解环。加锁顺序一致、事务短小是预防关键。 概念状态机演示(非 SQL 执行)。
锁等待与死锁甘特图
时间线
1
T1: LOCK A(获得)
2
T2: LOCK B(获得)
3
T1: LOCK B → 已被 T2 持有,等待…
4
T2: LOCK A → 已被 T1 持有,等待…(循环等待)
5
检测到死锁 → 回滚代价小的事务(T2)
6
T2 释放 B → T1 获得 B,继续执行