一,问题复现
对于同一个方法中,有insert和update操作,并且,update操作中的条件字段没有主键或者索引,这时候会偶发出现死锁(Deadlock found when trying to get lock; try restarting transaction)一
二,解决方案
1.使用事务,但是避免使用长事务,将大事务拆小,分段多提交。
2.sql语句条件字段添加上主键或者索引,这样执行后为行锁,避免表锁,从而避免死锁。
本文针对同一方法中insert与update操作导致的偶发死锁问题,提出通过使用事务并拆分大事务、为update条件字段添加主键或索引来避免死锁。
对于同一个方法中,有insert和update操作,并且,update操作中的条件字段没有主键或者索引,这时候会偶发出现死锁(Deadlock found when trying to get lock; try restarting transaction)一
1.使用事务,但是避免使用长事务,将大事务拆小,分段多提交。
2.sql语句条件字段添加上主键或者索引,这样执行后为行锁,避免表锁,从而避免死锁。
360
1064
5341
252
1606

被折叠的 条评论
为什么被折叠?