CORE CONCEPTS · 关系型 · 通用 OLTP
PostgreSQL 核心知识
学习 PostgreSQL 的重点不只是 SQL 语法,而是理解 MVCC、WAL、统计信息和扩展机制如何共同决定正确性与性能。
学完应该能做到
- 能解释一条查询如何生成并执行计划
- 能判断 vacuum、锁与长事务问题
- 能设计可回滚的主版本升级
三个必须建立的心智模型
MVCC 与 Vacuum
更新会产生新的行版本,旧版本由 vacuum 回收;长事务会阻止垃圾回收并放大表膨胀。
- 关注 xmin 与事务年龄
- 区分 autovacuum 不足和索引膨胀
- 用锁等待图定位阻塞链
规划器与索引
规划器基于统计信息估算行数,再在顺序扫描、索引扫描、连接算法和并行计划之间选择。
- 理解 B-tree、GIN、GiST、BRIN 的适用边界
- 用 EXPLAIN (ANALYZE, BUFFERS) 验证估算
- 优先修复数据分布和查询形状
WAL、复制与恢复
WAL 既服务崩溃恢复,也驱动物理流复制和逻辑解码。
- 明确 RPO/RTO 与同步级别
- 定期演练 PITR
- 复制槽必须监控积压
把知识落到工程决策
建模前
先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。
上线前
使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。
运行中
监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。