我用的是mysql数据库,工具是navicate for MySQL
在日志中发现死锁报错
在Navicate里按F6,然后输入show engine innodb status;
关于此命令信息的解读请看:show engine innodb status解读
找到 LATEST DETECTED DEADLOCK,如下图,里面有死锁的语句。
经查找发现,我有两个事务,一个是更新设备状态,一个是修改设备的一些信息。这两个事物都被上了X锁,而X锁是互斥锁,如果没有外力他们将永远锁下去。
具体请看:两个事务更新同一张表出现死锁
这两个语句都是更新device
这张表,而且用的索引都是imsi,所以我将第二个更新语句的索引换成了id,问题解决!
如果各位大神有其他解决方案,请在下方留言,谢谢!