来源: postgr.es
50
当 里堆满 文件时,很多人的第一反应是“复制坏了”。但 和 指向的不是流复制本身,而是 PostgreSQL 本地归档进程对 的排队和完成记录。把这层关系拆清楚,排查 WAL 暴涨会快很多。 可以把 WAL 交付拆成三件事: 生成 WAL 传输 WAL 回放或消费 WAL 是“传输 WAL”的一种方式。流复制也是一种方式。逻辑复制也有传输通道,但它传的...
来源: postgr.es
53
在 PostgreSQL 备份工具里,“全量 + 一串增量”几乎是默认想象:上一次备份是下一次备份的父节点,恢复时沿着链条一路重放。pg_hardstorage 选择了另一条路:它没有增量链,而且这是设计目标,不是缺失功能。核心取舍很直接:用更多源端读取 I/O,换一个不容易在凌晨恢复时突然断掉的仓库格式。 链式增量格式看起来很省: 只要每个节点都在,...
来源: postgr.es
43
PostgreSQL 的 看起来像一个普通优化器开关,但它影响的是分区表查询里非常关键的一步:把明显不需要访问的分区从扫描计划中剔除。容易踩坑的地方在于,分区裁剪不只发生在生成执行计划时,也可能发生在执行过程中。排查慢查询时,只看一眼 里的静态计划,往往不够。 分区表的代价来自“可能要看很多张子表”。如果查询条件能明确落在某个分区范围内,数据库就没有必...
来源: postgr.es
56
PostgreSQL 的 经常被简单理解成“清理死数据”。但真正落到一个 8KB heap page 上,它做的事情更细:什么时候只改 ,什么时候回收 tuple 字节,什么时候还不能释放 line pointer,什么时候更新 FSM 和 visibility map。理解这些细节,能解释很多生产现象:为什么表删了一半文件还不变小,为什么 index...
来源: postgr.es
51
这个 GUC 看起来像一个普通的优化器开关,但它背后对应的是 PostgreSQL 并行哈希连接的一条关键分界线:多个 worker 是各自建一份哈希表,还是合力构建一张共享哈希表。这个差异在小表上可能不显眼,一旦参与 join 的构建端变大,内存占用、批处理次数、执行时间都会被放大。 哈希连接通常分两步:先扫描 join 的一侧,按 join key...
来源: postgr.es
43
PostGIS 3.7.0alpha1 已经发布。这是 3.7 这个大版本线的 alpha 版本,包含自 PostGIS 3.6.4 以来的 bug 修复和新功能。对生产团队来说,它最重要的信号不是“马上升级”,而是:PostgreSQL、GEOS、PROJ、SFCGAL 的版本边界已经明确,可以开始做兼容性盘点和测试环境验证了。 PostGIS 3....
来源: postgr.es
39
PG DATA 2026 已经结束一个月。这是 Prairie Postgres 组织的第一次完整规模活动,从参会者、赞助方、志愿者和没能到场的人反馈来看,它不只是“办成了”,而是跑出了一个社区大会该有的样子:开放、包容、票价可负担,并且让新人和资深 PostgreSQL 用户都能找到位置。 更重要的是,组织方已经把 PG DATA 2027 的日期放...
来源: postgr.es
44
是 PostgreSQL 查询规划器里的一个 GUC 开关。它影响的是 计划节点:当查询需要读取多个分区表、继承子表,或者执行 的多个分支时,数据库可以让多个 worker 同时处理不同分支,而不是像普通 那样一个接一个扫完。 这件事听起来很小,但对分区表和报表查询很实际:如果你的数据天然分散在多个分区里,顺序扫分区会把并行度浪费掉; 则尝试把 wor...
来源: postgr.es
56
数据校验和不是那种每天刷存在感的功能。它安静地躺在每个 Postgres 数据页的页头里,等硬件、存储控制器、内存或某次诡异的位翻转露出破绽。过去很多老集群没有开启它,因为开启成本太高:要么初始化集群时就决定,要么后来停机全盘转换。Postgres 19 的变化很直接:校验和终于可以在运行中的集群上打开或关闭。 Postgres 已经有一整套机制保护自...
来源: postgr.es
51
PostgreSQL 社区的开发门槛不低,尤其是查询优化器、执行器、测试体系这些核心区域。Floor Drees 这篇记录的重点不是一次普通聚会,而是一个内部培养项目的阶段性进展:一批被认为有 PostgreSQL 开发潜力的同事第三次线下会面,集中讨论开发路径、已提交补丁,以及接下来如何继续把贡献推向社区。 很多工程师熟悉 PostgreSQL 的 ...