认识 PostgreSQL
PostgreSQL 的历史和许可,进程模型、事务与 MVCC,B-tree 和其他索引,执行计划、约束、JSONB、扩展和支持周期。

关于这套演示
适合刚开始用 PostgreSQL 的开发者,或者想弄清它内部怎样工作的人。从一个连接对应一个进程讲起,到 MVCC 怎样让读写互不阻塞、索引和执行计划怎样决定查询快慢,最后是 JSONB、扩展生态和每个大版本的支持年限。
共 16 页,standard 风格、cobalt 配色,用 PCafe 的 15 个模板拼成。可以在浏览器里直接播放,也可以下载成 HTML、PowerPoint 或 PDF,或者嵌入到自己的网页里。
内容提要
认识 PostgreSQL
从伯克利的研究项目到今天的开源关系数据库:历史、许可、核心机制和版本节奏。
四十年,三个名字
项目由伯克利的 Michael Stonebraker 主持,1994 年加入 SQL 后才走向今天的样子。
PostgreSQL 许可证:宽松的开源许可, 和 BSD、MIT 相近
代码由全球开发组(PGDG)维护,不属于某一家公司。
一个连接,一个后端进程
客户端先连主进程 postmaster,它为每个连接派生一个独立的后端进程。
写入的同时拿回改动前后的值
PostgreSQL 18 起,RETURNING 可以同时引用 OLD 和 NEW。
两个会话改同一行:后来者等待
默认隔离级别是读已提交。更新已被别的事务锁住的行时,要等对方提交或回滚。
更新不覆盖旧行,而是写出新版本
每个行版本带 xmin(创建它的事务)和 xmax(删除它的事务)。读者按自己的快照挑可见的版本。
默认索引 B-tree:从根页走到叶子页
CREATE INDEX 不指定类型时建的就是 B-tree,适合等值和范围查询。
内置六种索引
默认类型。等值、范围、排序,适合大多数场景。
看优化器怎么执行一条查询
EXPLAIN 输出一棵计划树:叶子读数据,上层做连接和排序。下面的计划是示意。
外键让表之间的引用始终成立
REFERENCES 声明外键:插入不存在的客户、删除仍被引用的客户,都会被拒绝。表结构是示意。
文档存进表里,也能按路径查
jsonb 以二进制分解存储,支持 GIN 索引。-> 取出 jsonb,->> 取出文本,@> 判断包含。
一条 CREATE EXTENSION,装上空间数据库
扩展可以加入新类型、函数、运算符和索引方法。PostGIS 是其中最常见的例子之一。
每年一个大版本,每个支持五年
小版本至少每三个月发布一次,只含修复,升级不需要导出导入。
PostgreSQL 19 RC 1已于 2026-10-15 发布, 正式版计划 11 月 19 日
截至 2026-10-30,当前最新的正式大版本仍是 18。日期以官方公告为准,可能顺延。
开源、可扩展、按年发布 升级前先看官方版本表和发布说明。
起源于 1986 年的伯克利 POSTGRES 项目,1996 年更名 PostgreSQL,使用类似 BSD 的宽松许可。
用到的模板
每个模板都有单独的说明页:适合放什么内容、字数上限和示例代码。





