概念
SELECT ... FOR UPDATE
SELECT ... FOR UPDATE 是 PostgreSQL 中实现悲观行级锁的 SQL 语句,对查询返回的行获取排他锁,阻止其他并发事务修改或加冲突锁,直到当前事务提交或回滚。适用于金融账本等高争用场景。
时间轴 (近 90 天)
10月15日
SELECT ... FOR UPDATE 读取行的最新已提交版本(绕过 MVCC 快照隔离规则),并对查询找到的每个匹配物理行获取排他锁。
待验证50%
10月15日
悲观锁(SELECT ... FOR UPDATE)通过序列化访问争议行消除丢失更新和竞态条件,但会降低吞吐量、增加延迟、可能导致连接池耗尽并引入死锁风险。
待验证50%
10月13日
高可靠性账本采用乐观并发控制(OCC)配合不可变追加约束,或在账户指针记录上使用悲观行级锁定(SELECT ... FOR UPDATE)。
待验证50%