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