【mysql解决死锁的三种方法 mysql死锁的原因及解决方法】
文章插图
mysql死锁的原因及解决方法如下:
1、一个用户A访问表A(锁住了表A),然后又访问表B;另一个用户B 访问表B(锁住了表B),然后企图访问表A;这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B才能继续,同样用户B要等用户A释放表A才能继续,这就死锁就产生了 。解决方法为:这种死锁比较常见,是由于程序的BUG产生的,除了调整的程序的逻辑没有其它的办法 。仔细分析程序的逻辑,对于数据库的多表操作时,尽量按照相同的顺序进 行处理,尽量避免同时锁定两个资源,如操作A和B两张表时,总是按先A后B的顺序处理, 必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源 。
2、用户A查询一条纪录,然后修改该条纪录;这时用户B修改该条纪录,这时用户A的事务里锁的性质由查询的共享锁企图上升到独占锁,而用户B里的独占锁由于A 有共享锁存在所以必须等A释放掉共享锁,而A由于B的独占锁而无法上升的独占锁也就不可能释放共享锁,于是出现了死锁 。这种死锁比较隐蔽,但在稍大点的项 目中经常发生 。如在某项目中,页面上的按钮点击后,没有使按钮立刻失效,使得用户会多次快速点击同一按钮,这样同一段代码对数据库同一条记录进行多次操 作,很容易就出现这种死锁的情况 。解决方法为:对于按钮等控件,点击后使其立刻失效,不让用户重复点击,避免对同时对同一条记录操作 。
- 脚趾甲长肉里很痛怎么办 脚趾甲长到肉里面疼有什么办法解决
- 自酿的葡萄酒酒味太浓怎么办
- oppo手机来电显示未知号码如何解决
- 后车轮抱死怎么解决啊
- 电脑网站打不开怎么解决
- 小米8无限重启解决方法
- 孩子磨蹭拖延怎么解决
- 海康录像机显示资源不足怎么解决 海康录像机资源不足是什么意思
- 容事达洗衣机 荣事达洗衣机e3故障怎么解决
- 格兰仕空调e5怎么排除 格兰仕空调e5的解决方法