PostgreSQL 19 新增 autovacuum 评分视图
哪张表最急着被 autovacuum 处理,此前只能靠 DBA 自己推算。Nathan Bossart 提交了 pg_stat_autovacuum_scores 视图的前三个补丁,把 autovacuum 的评分摆成系统视图,并对所有用户开放。争论集中在要不要同时给出是否够格清理的布尔列,最终采用 autovacuum 真正决策时用的 dovacuum 与 doanalyze。
保留原始来源与发布日期的新闻、博客和活动。
哪张表最急着被 autovacuum 处理,此前只能靠 DBA 自己推算。Nathan Bossart 提交了 pg_stat_autovacuum_scores 视图的前三个补丁,把 autovacuum 的评分摆成系统视图,并对所有用户开放。争论集中在要不要同时给出是否够格清理的布尔列,最终采用 autovacuum 真正决策时用的 dovacuum 与 doanalyze。
索引访问方法可一次返回一页内的多个匹配项,Andres Freund 指出内存分配与溢出隐患。
用 ShmemRequestStruct 与回调取代两阶段流程,为将来可调整大小的共享内存铺路。
Lukas Fittl 的补丁已到第 18 版,重整了 CPU 特性标志并把 hypervisor 检测单独归类。
Tom Lane 建议把测试改串行或直接移除,Robert Haas 认为失败率低,还想再收集数据。
Gavin M. Roy 一次放出四个 PostgreSQL 工具。tree-sitter-postgres 是 SQL 与 PL/pgSQL 的 Tree-sitter 语法,由 Bison 源码生成。libpgfmt 是 Rust 写的格式化库,内置多套风格预设,pgfmt 是它的命令行工具,能格式化也能查风格。libpgdump 用 Rust 读写 custom、directory 与 tar 三种转储格式。
glibc 2.28 在 2018 年按 Unicode 规则改了排序,B-tree 索引里按旧顺序摆好的数据就此对不上:查询少返回行、唯一约束抓不到重复,而且没有告警。Shaun Thomas 梳理了应对之道:PostgreSQL 13 起记录排序规则版本并告警,17 提供内置 provider,pg_c_utf8 在大版本内不再变。老集群升级操作系统后要 REINDEX INDEX CONCURRENTLY。
Estuary 更新了 PostgreSQL 连接器。新增只读模式 CDC,不必往 watermarks 表写数据,可直接从只读备库采集,把复制开销移出主库;这条路要求 PostgreSQL 16 以上、开启逻辑解码并设 hot_standby_feedback = on,采集范围里还要带高频更新表或心跳表,否则 WAL 会一直堆积。源端与目标端都支持 IAM 认证,分区表还可按分区各自成流。
数据装得进内存时一切都快,工作集一旦超过可用内存,响应时间就从毫秒跳到几百毫秒。Jake Hertz 解释这道悬崖来自缓存淘汰:新数据把旧页挤下磁盘,再查这些数据就要等慢速 I/O;分析查询扫历史数据会把热数据挤出内存,让情况更糟。可选的路子是加内存、水平分片,或改列存压缩体积。他建议用 pg_statio_user_tables 盯住缓存命中率,低于 95% 就是要出事的信号。
Daniel Gustafsson 已推送补丁,随后用 0036232ba8f 修好测试未等启动器退出的时序问题。
指针传参挡住了优化,讨论倾向用栈分配替代 palloc 的 FunctionCallInfoData。
特定构建下 SELECT count 报 no empty local buffer available,等待作者确认是否为回归。
支持函数把 jsonb_object_field 的转换重写成类型化提取器,微基准提速 2.1 倍。
v50 引入默认值为 5 的 max_repack_replication_slots,另修 WAL 刷新与排斥约束问题。
第 9 版补丁覆盖 parse、bind 与 execute 路径,审查确认不受 CVE-2026-2006 影响。