锁等待与死锁甘特图

两事务、两个资源、相反的加锁顺序——循环等待如何在时间轴上形成死锁, InnoDB 又如何选 victim 回滚解环。加锁顺序一致、事务短小是预防关键。 概念状态机演示(非 SQL 执行)。

锁等待与死锁甘特图
第 01 / 6 步
t1 · T1 获得资源 A 的锁 比较 0 · 交换 0
时间线

				
					
					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,继续执行
				
			
01 / 6
速度