Skip to content

死锁日志分析

现象

  • 两事务互相等待对方持有的行锁,InnoDB 回滚代价较小的一方,客户端收到 死锁错误

查看最近死锁

sql
SHOW ENGINE INNODB STATUS\G
  • LATEST DETECTED DEADLOCK 段含 事务一、事务二 持有的锁与等待的锁、回滚的事务

缓解思路

  • 固定 多行更新顺序(按主键排序更新)。
  • 缩短事务、减少热点行并发更新。
  • 适当调低隔离级别或改写为 单条语句(若业务允许)。