如果您使用的是InnoDB或任何行级事务性RDBMS,则即使在完全正常的情况下, 任何
写入事务也可能导致死锁。较大的表,较大的写入和较长的事务块通常会增加发生死锁的可能性。在您的情况下,可能是这些因素的组合。
真正处理死锁的唯一方法是编写代码以期望它们。如果您的数据库代码编写得很好,通常这并不是很难。通常,您可以放一个
try/catch查询执行逻辑,并在发生错误时查找死锁。如果您发现其中一个,那么正常的事情就是尝试再次执行失败的查询。
我强烈建议您阅读MySQL手册中的此页面。它提供了一系列可帮助处理死锁并减少死锁频率的事情。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)