示例
示例
SHOW ENGINE INNODB STATUS\G
-- 关注 LATEST DETECTED DEADLOCK 段:两事务 SQL、持有锁与等待锁
-- 末尾 WE ROLL BACK TRANSACTION ... 表示被回滚(牺牲)的一方
-- 记录所有死锁到错误日志(排查期开启)
SET GLOBAL innodb_print_all_deadlocks = ON;| 输出范围 | 默认只保留最近一次;要看全部需打开 innodb_print_all_deadlocks |
|---|---|
| 被回滚方 | InnoDB 选择代价较小的事务回滚,应用需捕获死锁错误并重试 |
| 预防 | 事务内按固定顺序访问行;缩小事务范围;评估隔离级别与索引完备性 |