最近线上出现一个问题,就是进行一个A操作以后,再进行另一个B操作,会发生死锁。
看到A操作会调用一个接口,接口里面会开启事务操作。B操作会调用另一个接口,发现A,B的两个接口会共同更新一个表的同一条记录。分析是A操作时候开启的事务在进行中,又进行了B操作造成产生了操作用一个表的同一条记录造成死锁。发现A操作事务回滚出现问题。造成了一个事务无法结束。
附:查看死锁方法
select * from information_schema.innodb_trx;
删除死锁进程
kill trx_mysql_thread_id