如何避免PostgreSQL中的死锁问题

3

我在用户积分从数据库表中扣除的同时,遇到了无法添加积分的死锁情况。我需要建议以避免死锁。但我不能使代码线程安全,因为这会影响处理。我正在使用Postgres作为数据库。

1个回答

3
如果死锁只是偶尔发生,请不要担心。只需重复事务即可。
如果经常发生死锁,您需要采取更多措施以获得良好的性能。有两个措施可以降低死锁频率:
- 保持事务简短,并且在一个事务中添加或删除的点应该最少。 - 每当您修改一个事务中的多个点时,请按某些固定顺序处理(并因此锁定)这些点,例如按主键列的顺序处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接