mysql数据库死锁怎么解决

博客主要探讨MySQL数据死锁的解决办法,一是等待超时自动回滚事务,二是发起死锁检测主动回滚一条事务。因性能原因,常用死锁检测处理。其原理是构建有向图判断是否有环,检测到死锁后,基于trx_weight字段选行数最少的事务回滚。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL数据死锁怎么解决

等待,直到超时(innodb_lock_wait_timeout=50s),自动回滚事务。

发起死锁检测,主动回滚一条事务,让其他事务继续执行(innodb_deadlock_detect=on).

由于性能原因,一般都是使用死锁检测来进行处理死锁。

死锁检测

死锁检测的原理是构建一个以事务为等点、锁为边的有向图,判断有向图是否存在环,存在即有死锁。

回滚

检测到死锁之后,选择插入更新或者删除的行数最少的事务回滚,基于INFORMATION_SCHEMA.INNODB_TRX表中的trx_weight字段来判断

转载于:https://blog.51cto.com/14354846/2399510

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值