遇到一个Mysql死锁问题,记录下

xiaoxiao2021-02-28  30

对一张表做批量编辑,

表的基本接口如下:

t_test:

bigint  id,

int  status,

varchar  clientId,

更新语句是:

update t_test set status=2 where clientId='...'

当批量操作时,批量提交多次update语句,每次语句执行是需要做以下操作:

1.获取主键索引

2.获取clientId列

当多次提交时,2次update,分别通过主键ID和clientId对同一行加上行锁后,都在等待对方释放锁,从而造成死锁

方案:

通过ID作为条件update,不引入主键索引之外的字段,避免死锁的机会

转载请注明原文地址: https://www.6miu.com/read-800167.html

最新回复(0)