我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

1、常规死锁的原因是双方互相持有对方的锁,无法释放。

问题是对于同一张表中的两个数据

mysql外键关联_mysql外键关联查询_mysql中关联查询

事务1开始执行step-1,对id=1的数据加排他锁(X锁)。

事务2开始执行步骤2,对id=2的记录加排他锁(X锁)。

事务1执行step-3,此时事务2已经持有id=2的排他锁,因此step-3处于等待状态。

事务2执行到step-4,发现事务1已经持有id=1的锁,导致双方都等待。

报告僵局

2.特殊死锁:两张表修改同一条数据,且有外键关联,导致死锁

mysql外键关联_mysql中关联查询_mysql外键关联查询

B表为主表,A表保存B表的主键,有外键关联,如果数据发生变化:增、删、改,MySQL会默认先查询主表中的数据,并加共享锁,防止当前修改的数据被

死锁过程:

事务1执行step-1,条件为b_id=1,由于有外键关联,所以在修改这条数据的时候,MySQL会去主表B中查询外键数据,并默认对B表中id=1的数据加共享锁。

事务2执行步骤2,出现和上面步骤1同样的情况,持有表B上的共享锁。

事务1执行步骤-3,执行id=1的数据,发现这条数据有事务2的共享锁,于是进入等待状态

事务2执行step-4,执行id=1的数据,发现这条数据有事务1的共享锁,于是进入相互等待状态。

发生死锁

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4715.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线