整理宿务服务器数据库死锁导致事务失败与请求超时的排查实战。
死锁会导致事务失败与请求超时。以下是实战。
一、确认现象 - 报死锁错误 - 事务被回滚 - 偶发接口超时
二、定位 1) 查看死锁日志与事务信息 2) 分析锁等待与加锁顺序 3) 找出涉及的表与 SQL 4) 确认是否为并发更新
三、常见原因 1) 加锁顺序不一致 2) 事务过长持锁久 3) 缺索引导致锁范围扩大 4) 大事务与批量更新 5) 并发高峰触发
四、处理 - 统一加锁顺序 - 缩短事务与拆分 - 加索引缩小锁范围 - 批量更新拆分 - 重试与超时控制
五、优化 1) 减少大事务 2) 乐观锁/版本号 3) 锁等待监控
六、预防 - 死锁与锁等待告警 - SQL 评审 - 压测验证并发
总结:死锁要先看死锁日志与加锁顺序,统一顺序、缩短事务并加索引,靠监控与评审预防。