在定时任务中执行 on duplicate key update 产生死锁了,查了一些资料很多建议不使用这个语句,还不如先 select 出来再判断是 update 还是 insert 。
既然如此 这个语句还有啥用... 大佬们还有其它解决方案吗
在定时任务中执行 on duplicate key update 产生死锁了,查了一些资料很多建议不使用这个语句,还不如先 select 出来再判断是 update 还是 insert 。
既然如此 这个语句还有啥用... 大佬们还有其它解决方案吗
|
GBdG6clg2Jy17ua5May 4, 2020 via iPhone
1
该死锁,update 的时候一样死锁
|
|
msg7086May 4, 2020
2
有啥用?单线程的时候不就有用了吗。
|
|
xhinliangMay 4, 2020
5
说下我的几个解决方案:
1. insert ignore,判断返回值,如果 affected row > 0 则手动 update 2. 隔离级别降低到 rc |
|
darylcMay 4, 2020 via Android
8
是的,确实是会遇到这个问题的,写入量比较大并且还是并发是吧
|
|
gaiusMay 5, 2020 via Android
9
两个事务获取锁顺序不同就有几率死锁,解决方法要么确保事务加锁顺序相同,不能确保可以回滚后重试
|
|
GBdG6clg2Jy17ua5Dec 12, 2020 via iPhone
11
@vison09 会死锁。你可以试试。
|