Skip to content

CORE CONCEPTS · 关系型 · 通用 OLTP

PostgreSQL 核心知识

学习 PostgreSQL 的重点不只是 SQL 语法,而是理解 MVCC、WAL、统计信息和扩展机制如何共同决定正确性与性能。

学完应该能做到

  • 能解释一条查询如何生成并执行计划
  • 能判断 vacuum、锁与长事务问题
  • 能设计可回滚的主版本升级

三个必须建立的心智模型

01

MVCC 与 Vacuum

更新会产生新的行版本,旧版本由 vacuum 回收;长事务会阻止垃圾回收并放大表膨胀。

  • 关注 xmin 与事务年龄
  • 区分 autovacuum 不足和索引膨胀
  • 用锁等待图定位阻塞链
02

规划器与索引

规划器基于统计信息估算行数,再在顺序扫描、索引扫描、连接算法和并行计划之间选择。

  • 理解 B-tree、GIN、GiST、BRIN 的适用边界
  • 用 EXPLAIN (ANALYZE, BUFFERS) 验证估算
  • 优先修复数据分布和查询形状
03

WAL、复制与恢复

WAL 既服务崩溃恢复,也驱动物理流复制和逻辑解码。

  • 明确 RPO/RTO 与同步级别
  • 定期演练 PITR
  • 复制槽必须监控积压

把知识落到工程决策

建模前

先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。

上线前

使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。

运行中

监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。

Released under the MIT License.