当前位置:Gxlcms > 数据库问题 > 数据库update死锁

数据库update死锁

时间:2021-07-01 10:21:17 帮助过:4人阅读

cross_marketing set gmtModified = NOW(), pageview = pageview+ #extpageview# WHERE marketingId=#marketingId#

 

第一次调用时,marketingId传入值顺序: 1,3,5,12 第二次调用时,marketingId传入值顺序:1,2,5,3   每次update时,会锁行。 那么第一次调用时,顺序锁行,当更新完3,准备跟新5的时候,发现5已经被第二次调用锁行了,就等待。而此时的第二次调用刚好跟新完5准备去拿3的锁,却发现被第一次调用占有,于是就出现死锁。   所以,我们要在批量更新,删除操作的时候,按照一个固定的顺序来排序,然后进行操作。 前面的例子,如果按照marketingId从小到大排序,就会变成: 第一次调用时,marketingId传入值顺序: 1,3,5,12 第二次调用时,marketingId传入值顺序:1,2,3,5 如此,就避免了死锁的发生。

数据库update死锁

标签:

人气教程排行