十、事务、锁与并发
PostgreSQL 基于 MVCC 提供三种隔离级别,其中 SERIALIZABLE 使用可串行化快照隔离(Serializable Snapshot Isolation,SSI),是少数在实现真正可串行化的同时保持高并发的数据库。本章讲清各隔离级别的实际语义(与 SQL 标准的差异)、锁类型与兼容矩阵、阻塞链与死锁检测,并给出基于系统视图的阻塞诊断方法。
本章目录
学习目标
- 说清 PostgreSQL 三个隔离级别的真实行为与并发异常边界
- 理解 SSI 如何检测写偏斜并以 40001 报错,掌握重试设计
- 认识表级/行级/咨询锁与它们的兼容关系
- 用
pg_locks、pg_stat_activity、pg_blocking_pids()诊断阻塞与死锁
依赖与前置
- 前置:MVCC、Vacuum 与膨胀(快照与可见性是隔离级别的基础)。
- 强关联:优化器与执行计划(
EXPLAIN ANALYZE会加锁/执行)。
