我遇到了无法删除记录的问题。我一直遇到死锁超时问题。
我正在运行一个简单的查询
delete from phone_calls where status =0
一段时间后我收到此错误Lock wait timeout exceeded; try restarting transaction
我该怎么做才能解决这个问题?我的查询有问题吗?
请注意,如果我添加限制1000,它可以正常运行,但没有限制,它会遇到死锁。
答案 0 :(得分:2)
首先,这不是死锁。这是一个简单的锁等待超时。死锁上给出的错误类似于“试图锁定时发现死锁”。
其次,其他一些事务仍在运行,并且在phone_calls中的一行或几行上保持锁定状态为0.如果状态不是索引,则表示您有效地持有表锁并且两个查询不能这是同一时间。删除所有这些行可能需要一段时间,而且您的工作经常运行。