↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

PostgreSQL 博览 RSS

保留原始来源与发布日期的新闻、博客和活动。

5 条内容

PostgreSQL 19 收入 pg_plan_advice 模块

Hubert 'depesz' Lubaczewskidepesz.com

Robert Haas 在 3 月 12 日提交了 contrib 模块 pg_plan_advice,它把连接顺序、连接方式、扫描方式和并行策略等规划器决策写成一段文本建议,用来固定已经验证过的执行计划。用法是 SET pg_plan_advice.advice 指定建议,再用 EXPLAIN (plan_advice) 查看规划器给出的建议文本。depesz 提醒这是把双刃剑:建议一旦写死就长期生效,数据分布变了很容易把查询锁死在糟糕的计划上。

pg_regresql 让规划器改用目录里的统计

Radim Marekboringsql

PostgreSQL 规划器不看 pg_class.relpages,而是量磁盘文件大小再缩放行数估计,所以把生产统计灌进小测试库仍复现不出生产计划。Radim Marek 的 pg_regresql 挂在 get_relation_info_hook 上,等规划器读完物理指标,再把已 ANALYZE 表的页数与行数换回目录中的值,未分析的表保持原样。扩展不需要配置、后台进程或共享内存,LOAD 一次即生效,支持 13 到 18。

重置序列时 START WITH 并不会改动计数器

Deepak MahtoDatabase Rookies

Deepak Mahto 在 Oracle 迁移中发现,ora2pg 用 ALTER SEQUENCE … START WITH 重置序列并不生效,直到对账出现差额才暴露。序列的计数器在 last_value 上,START WITH 只改 start_value。真正的重置要用 RESTART WITH n 或 setval(seq, n, false),两者都让下次取值等于 n。迁移流水线更适合后者,它能被逻辑复制传播。

17 条内容

PostgreSQL 19 拟把 JIT 默认关掉

Tomas Vondrapgsql-hackers

把 jit 的默认值从 on 改成 off,在邮件列表上获得了一致支持。理由有两条:JIT 刚引入时分区表还不普遍,如今分区用得多了,被误伤的查询也多了;LLVM 自身的编译性能这些年在退步,默认开启的收益越来越薄。Jelte Fennema-Nio 已把提案标记为可供提交者处理,Tomas Vondra 表示若无人反对就在几天内提交,Tom Lane 也表态支持。时机上大家倾向于现在就动手而不是等到测试版中期,好让负面反馈尽早暴露。

postgres_fdw 的释放后使用缺陷会导致崩溃

Etsuro Fujitapgsql-hackers

问题出在事务状态检查上:SELECT 期间 pgfdw_reject_incomplete_xact_state_change() 会销毁连接并把缓存条目置空,但扫描状态里那份指针仍指向已释放的内存,随后执行 close c1 之类的命令就会访问野指针而崩溃。Etsuro Fujita 的补丁把 PGconn 的释放推迟到事务回滚清理时进行,复测确认崩溃消失。该缺陷影响 14 及以后版本,需要回迁到各稳定分支。

只追加负载在为用不上的 MVCC 付费

Matty StrattonTigerData 博客

Matty Stratton 算了一笔账:MVCC 让读写互不阻塞,代价是每行都带 23 字节的事务可见性头部,算上对齐填充是 28 到 30 字节。IoT 管道、金融流水、可观测性这类只追加的负载并不修改已写入的行,却照样承担全部成本:高频写入下写放大到 3 至 5 倍,autovacuum 为设置提示位和冻结事务号持续运转,WAL 也随之膨胀。解法是让存储形态匹配负载,例如用列式存储把行批量打包,摊薄 MVCC 的固定开销。

Patroni 集群系列第三篇接上 HAProxy 分流

Shaun ThomaspgEdge 博客

Shaun Thomas 的 Patroni 高可用系列走到第三篇,前两篇搭起 etcd 与 Patroni 本体,这篇补上入口。HAProxy 以裸 TCP 转发连接,用 HTTP 检查打 Patroni 的 REST 接口判断角色:6543 端口只连主库,根路径返回 200 者为主;6544 端口连只读副本,用 /replica?lag=1MB 排除延迟过大的节点。三节点同在一个后端池,默认三次检查失败即摘除,并断开其上会话防脑裂。

pg_clickhouse 0.1.5 修掉渗透测试发现的问题

David E. WheelerJust a Theory 博客

pg_clickhouse 是把 PostgreSQL 接到 ClickHouse 的扩展,由 ClickHouse 赞助开发。David E. Wheeler 发布的 0.1.5 是一次维护更新,修掉了渗透测试和一份社区安全报告中发现的崩溃与漏洞,文章没有展开具体的技术细节。安装渠道有三条:PGXN 包仓库、GitHub 的发行页和 Docker 镜像。作者说明自己近期主要精力在公司内部项目上,这个版本是针对已报告问题的响应。

2 条内容