MySQL死锁解决原则

原则之一
要分析一个死锁, 必须深入业务,了解整个事务的逻辑(闭门无法造车)

原则之二
GAP锁很复杂,为了减少GAP锁,减少GAP导致的死锁,尽量选择Read    Committed隔离级别( RC +    row    based    binlog,基本上能够解决所有问题,无需使用Repeatable    Read)
适当的减少Unique索引,能够减少GAP锁导致的死锁(根据业务情况而定)

原则之三
在MySQL中,以不同索引的过滤条件, 来操作相同的记录( Update/Delete),很容易产生死锁。 (例如:如上例所示,执行计划分别走u和a索引,但是均操作了id    =    3这一列,产生死锁。)

原则之四
RC隔离级别下,如果死锁中出现Next    Key( Gap锁),说明表中一定存在unique索引多语句事务产生的死锁,确保每条语句操作记录的顺序性,能够极大减少死锁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值