小编典典

如何避免数据库死锁?

sql

某些数据库功能(例如SELECT ... FOR UPDATEON DELETE CASCADE)很容易受到死锁的影响,因为数据库未指定将使用哪种锁定顺序。我发现有两次
讨论暗示此行为不是SQL标准指定的,更不用说具体的实现了。因此,我在假设我们无法控制锁定顺序的情况下进行操作(至少,这样做并不明显)。

如果我们不能依赖锁定顺序,应该如何避免数据库死锁?

如果我们不应该避免僵局(您将不得不非常努力地说服我),那么我们应该怎么做?

这个问题与数据库无关,所以请不要问我正在使用哪个数据库。


阅读 180

收藏
2021-04-07

共1个答案

小编典典

明智的做法是几年,我正在修改公认的答案,以声明无法防止数据库死锁

如果您有幸能够分解数据库操作以一次仅与一个表进行交互(这种情况并非总是可能的),那么您将不得不在性能低下和出现死锁的可能性之间进行选择。选择你的毒药。

2021-04-07