mysql死锁的原因及解决方法 mysql造成死锁的原因
2022-07-27 06:09:19 未知 【 字体:大 中 小 】
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的独占锁而无法上升的独占锁也就不可能释放共享锁,于是出现了死锁。这种死锁比较隐蔽,但在稍大点的项 目中经常发生。如在某项目中,页面上的按钮点击后,没有使按钮立刻失效,使得用户会多次快速点击同一按钮,这样同一段代码对数据库同一条记录进行多次操 作,很容易就出现这种死锁的情况。解决方法为:对于按钮等控件,点击后使其立刻失效,不让用户重复点击,避免对同时对同一条记录操作。
猜你喜欢
山药烧汤怎么做好吃 山药烧汤怎么做好吃养胃
蛋清能做什么(蛋清能做什么甜品)
米粒的寓意和象征(取名米粒的寓意)
牛奶奶油是什么东西(牛奶奶油是啥奶油)
酱鸡的做法(酱鸡的做法视频)
工商银行卡可不可以在别的银行存钱(工商银行卡能不能在别的银行存钱)
清新雅致的酒店房型名称(酒店小清新房型名称)
新手开车挂档全身动怎么办 新手开车怎样启动挂档
怎样煮黄豆好吃又简单(黄豆如何煮好吃)
干粉电瓶能加电池液吗(干粉电瓶怎样加补充液)
常熟市烟花爆竹燃放最新通告(常熟烟花爆竹禁止)
怎样煮黄豆好吃又简单(黄豆如何煮好吃)
澳门海关出入境健康申报什么时候填(澳门海关出入境健康申报什么时候填信息)
玉兰花是哪个城市的市花(玉兰花是什么城市的市花)
葱包肉的做法(葱香肉包的做法)
中秋赏月寓意什么呀(中秋赏月象征着什么)
佛山南海经济开发区人民医院新冠康复门诊就诊指引(附预约入口)
家里能不能种韭菜(家里能不能种韭菜在阳台?)
栾川县春节年货市场在哪里?(栾川食品批发市场)
2023河北中小学寒假安全教育公开课直播观看平台