KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA

PostgreSQL 应用课:把 PG 的特性用对 — keel 龙骨

PostgreSQL 应用课:把 PG 的特性用对 的参考信息:PostgreSQL 应用课:把 PG 的特性用对

先看三个会真实发生的场景。

对账系统跑了两天,财务说差 0.03 元。查到最后,金额列的类型是 double precision,累加一百万条之后就是这个结果。

一个「待处理列表」页面上少了十几条记录。SQL 写的是 WHERE status <> 'done'。少掉的那批,status 是 NULL。

库存服务压测时超卖了三件。代码先 SELECT 查库存、再 UPDATE 扣减,两个请求同时进来,都读到了 10。

这三件事都不用翻 PostgreSQL 的存储引擎,也用不着先搞懂 MVCC 和 WAL。它们是用法选择的问题:类型选哪个、约束加不加、并发写怎么表达、什么时候该拆表。这门课就讲这类判断。

它和另外两门课的分工是清楚的:

本课夹在中间:站在写业务代码的人的位置,决定这个库该怎么被使用。七章覆盖类型与建模、约束兜底、JSONB 的边界、把逻辑压进 SQL、事务边界与并发写、权限与多租户隔离、以及什么时候不该用它。

七章里的每一条命令都在一台真实的 PostgreSQL 16.15 实例上跑过,正文里的输出是原始回显,不是预期结果。其中一个结论值得一提:本实验集群用 --locale=C 初始化,pg_trgm 因此不为汉字生成 trigram——这个坑在选型时很容易被忽略,第 06 章有完整取证。

开始阅读:课程导读

进入 keel 阅读