我使用JMeter测试我的程序,不知何故总响应数停止增加,然后我发现在MySQL中有一个死锁。我不明白下面的log是什么意思。似乎transaction(2)拥有一个S锁,并试图拥有同一个表的X锁。这会导致死锁吗?如果是这样,为什么会发生这种情况?-*** (1) TRANSACTION:mysqltables in use 2, locked 2
我在我的InnoDB表上得到了一个Deadlock found when trying to get lock; try restarting transaction错误。articles WHERE id = NEW.article.id$attempts_left = 5;{
// if we found a deadlock, we will try this query 4 more t
首先,我根本看不出怎么会有任何死锁,因为我没有使用显式锁定,只涉及一个表,每个表都有一个单独的进程来插入、选择和更新行,每次只插入或更新一行,每个进程很少(可能每分钟一次)运行。我得到了com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to这是唯一的表,也是唯一的查询,这种情况只发生在生产中(以便最大限度地提高调查的难度)。
唯一不寻常的是:(1)更新参与WHERE子句