如何避免PostgreSQL中的死锁

时间:2019-09-10 05:43:05

标签: java postgresql spring-mvc

在从数据库表中扣除用户点数的情况下,当出现请求添加点数的问题时,由于死锁条件,点数未添加,我面临着问题。我需要建议避免僵局。我不能使代码成为线程安全的,因为它将影响处理。我正在使用Postgres作为数据库。

1 个答案:

答案 0 :(得分:3)

如果死锁仅偶尔发生,请不要担心。只需重复交易即可。

如果经常发生,您必须做更多的事情才能获得不错的性能。有两种措施可以减少死锁的发生频率:

  • 使交易简短,不要在一次交易中添加或删除多余的点。

  • 每当您在事务中修改多个点时,都以某种固定顺序(例如,按主键列的顺序)处理(并锁定)这些点。