【发布时间】:2020-01-11 20:21:32
【问题描述】:
我在从数据库表中扣除用户点数的情况下遇到问题,同时当请求添加点数时,由于死锁条件而未添加点数。我需要建议避免僵局。我不能使代码线程安全,因为它会影响处理。我使用 Postgres 作为数据库。
【问题讨论】:
标签: java postgresql spring-mvc
我在从数据库表中扣除用户点数的情况下遇到问题,同时当请求添加点数时,由于死锁条件而未添加点数。我需要建议避免僵局。我不能使代码线程安全,因为它会影响处理。我使用 Postgres 作为数据库。
【问题讨论】:
标签: java postgresql spring-mvc
如果死锁只是偶尔发生,请不要担心。只需重复交易即可。
如果它经常发生,您必须做更多工作才能获得良好的性能。降低死锁频率的措施有两种:
保持交易简短,不要在一笔交易中添加或删除不必要的积分。
当您在事务中修改多个点时,以某种固定顺序处理(并因此锁定)这些点,例如按主键列的顺序。
【讨论】: