跳转到主要内容

44 参考文献

汇集本书引用的全部来源,按类别分组,并列出引用它们的章节。

各章在“延伸阅读”或正文中引用的所有来源,都在这里列出一次,让你不必四处寻找,就能找到每项论述背后的原始资料。先从手册读起。想知道某种机制为什么这样设计时,再读源码说明和论文。把服务商页面视为某一时刻的快照。

每个条目列出标题、作者或出版者、适用时的年份,以及引用它的章节。各章的“延伸阅读”说明某项资料适合用来了解什么;本页说明它在哪里被引用。持续更新的文档不标年份,因此各章会注明核查服务商相关事实的时间。

引用章节时使用简称:序言(开始之前);基本概念(先认识这些基本概念);延迟(时间都花在哪里);存储(一切都从页说起);缓冲区(缓冲区缓存决定哪些页留下);MVCC(更新就是插入);HOT(让更新保持 HOT);WAL(先记日志,再写数据);ACID(如实看待 ACID);清理(清理不可省);不是 MySQL(Postgres 不是 MySQL);类型(类型是一份契约);键(慎选键,少后悔);关系(有目的地选择约束);数据模型(你还不需要另一个数据库);扩展(值得了解的扩展);B-树(B-树挑起大梁);更多索引(B-树之外);EXPLAIN(读计划,不看时钟);规划器(规划器也在估算);执行计划(代价最低的计划胜出);查询(经得住数据增长的查询);搜索(不用搜索引擎,也能搜索);函数(数据库中的代码);并发(大家都得排队);模式变更(变更模式,服务照常);数据加载(快速加载数据);连接(连接并非免费);基准测试(如实测量);配置(真正重要的配置);可观测性(观察数据库运行);备份(未经验证的备份只是传闻);安全(不要信任任何租户);托管数据库(别人来运行这台机器);服务商(选择一个你能离开的服务商);调优指南(先优化工作,再升级机器);扩容(先纵向扩容,再横向扩展);复制(权威数据的副本);分区(为删除而分区);分片(最后再考虑分片);局限(PostgreSQL 输在哪里)。

PostgreSQL 文档

PostgreSQL Global Development Group 编写的手册,除非条目另有说明,均指第 18 版(/docs/18/)。它是本书几乎所有论述的一手来源,版本变化时也应首先查阅这里。

PostgreSQL 源码、提交和 Wiki

手册告诉你“是什么”之后,README 会由构建这些机制的人亲自解释“为什么”。本节收录这些设计说明、两个提交以及社区 Wiki,均来自 PostgreSQL 项目。源码链接指向不断变化的 master 分支。

论文

机制背后的研究:预写日志恢复、隔离性、B-link 树、基于代价的规划,以及向量搜索和混合搜索背后的索引。运行 Postgres 不需要先读这些论文。当某一章让你想追问一种机制的来历时,再找一篇来读。

书籍

两部系统讲解的著作,都可以在线免费阅读。如果你想换一种讲解方式理解同样的概念,它们就是存储、MVCC 和 B-树三章最好的配套读物。

规范与 RFC

本书关于标识符和访问控制的建议所依据的标准。

服务商与项目文档

服务商页面经常变化,因此在依据某项价格、限制或版本作决定之前,要重新查看页面。各章都注明所引事实的日期,大多截至 2026 年 10 月。条目按来源分组,并为每个被引页面附上链接。

参考资料

文章、演讲与事故复盘

按作者或出版者列出的工程文章、演讲、公告和事故记录。先读事故复盘:让亲历者讲述其他团队的停机事故,比自己经历一次代价低得多。