跳转到内容

Postgres 实验室

每一段 SQL 都能就地运行。真的 PostgreSQL 18,跑在你的浏览器里,不连任何服务器。

Postgres 官方文档是参考手册,它假设你已经知道要找什么。这本书反过来:先给现象,再给机制,每个机制都配一段能改、能跑、能看到结果的 SQL。

真的 Postgres,不是模拟

页面里跑的是 PGlite —— 把 PostgreSQL 18 编译成 WebAssembly,3MB。不是 SQL 解析器玩具,也不是远程沙箱,是完整的 Postgres 后端。

能看到别处看不到的东西

pageinspectpg_visibilitypg_buffercache 全部可用。你可以亲手 dump 一个堆页面,看 UPDATE 之后旧版本还躺在哪里。

顺序是有意设计的

MVCC 排在索引之前。不先理解元组版本和可见性映射,Index-Only Scan 与表膨胀就只能死记。

全书共享一个数据集

一个订单系统贯穿六个阶段。同一张 orders 表,你会在不同章节看到它截然不同的侧面。

阶段 主题 你将能回答
SQL 表达力 窗口函数、LATERAL、递归 CTE 各自不可替代在哪
类型与建模 什么时候该用 jsonb 而不是拆表
MVCC 一个只读长事务为什么会让别的表膨胀
索引与执行计划 优化器为什么放着你的索引不用
并发与锁 PG 的 Repeatable Read 和 SQL 标准差在哪
存储、WAL 与调优 shared_buffers 为什么不能设成内存的一大半