2026-10-27 23:21:01
数据库中的死锁,指的是两个或多个数据库事务,在执行过程中互相持有对方所需的资源(如记录锁、表锁等),形成循环等待,导致所有参与事务都无法继续推进的永久性阻塞状态。
死锁的关键特征:至少存在两个事务、每个事务已持有至少一个资源且在请求另一个资源、形成闭合的等待循环。
典型实例:事务A对表t的行1加锁,等待事务B持有的行2的锁;事务B对行2加锁,等待事务A持有的行1的锁,两者互相等待无法完成。
数据库系统一般会通过死锁检测机制(如超时判断、资源等待图分析)自动解除死锁,通常选择回滚代价较小的事务以释放资源。