MySQL如何避免死锁

1 分钟阅读 172 字 + 109 词
打破 互斥 ,请求与保持,不可剥夺,循环等待 这四个条件即可、
在数据库层面,有两种策略通过 打破循环等待条件 来解除死锁状态
1.设置 事务等待锁的超时时间 innodb_lock_wait_timeout。当一个事务的等待时间超过该值后,就对这个 事务进行回滚 ,于是锁就释放了,另一个事务就可以执行了。
2. 开启主动死锁检测 。主动死锁检测在发现死锁后, 主动回滚死锁链条中的某一个事 务,让其他事务得以继续执行。将参数 innodb_deadlock_detect 设置为 on,表示开启这个逻辑,默认就开启。

目录