PGNexus 每周新闻 本周 PostgreSQL 技术动态 本周内容涵盖 PostgreSQL 19 使用 RDTSC 改进 EXPLAIN ANALYZE 计时机制、新发布的 pg_datasentinel 可观测性扩展、支持通过 WAL 实现 PostgreSQL CDC 的 DBConvert Streams 2.0,以及通过调优 autovacuum 应对表膨胀的实用指南。这些文章分别聚焦性能诊断、监控、迁移工具和数据库维护,涵盖生产环境 PostgreSQL 团队的核心关切。 [image: Postgres 19 展望:通过 RDTSC 降低 EXPLAIN ANALYZE 的计时开销] <https://pgnexus.ai/tech-blogs?url=https%3A%2F%2Fpganalyze.com%2Fblog%2F5mins...> 2026年4月11日 | Lukas Fittl Postgres 19 展望:通过 RDTSC 降低 EXPLAIN ANALYZE 的计时开销 <https://pgnexus.ai/tech-blogs?url=https%3A%2F%2Fpganalyze.com%2Fblog%2F5mins...> PostgreSQL 19 引入了使用 RDTSC CPU 指令的新计时机制,以降低 EXPLAIN ANALYZE 的性能开销。此前,计时测量使用 RDTSCP 指令,该指令会阻塞并发的 CPU 指令执行,显著拖慢查询速度——对 5000 万行数据进行 COUNT(*) 查询,开启计时需要 4200 毫秒,而不开启仅需 1900 毫秒。新的 RDTSC… 阅读原文 <https://pgnexus.ai/tech-blogs?url=https%3A%2F%2Fpganalyze.com%2Fblog%2F5mins...> [image: 防止表膨胀的无声蔓延] <https://pgnexus.ai/tech-blogs?url=https%3A%2F%2Fwww.tigerdata.com%2Fblog%2Fp...> 2026年4月09日 | NanoHertz Solutions - Jake Hertz 防止表膨胀的无声蔓延 <https://pgnexus.ai/tech-blogs?url=https%3A%2F%2Fwww.tigerdata.com%2Fblog%2Fp...> PostgreSQL 高频数据摄取会通过 MVCC 的死元组积累造成表膨胀。当执行更新或删除操作时,PostgreSQL 不会立即移除旧行版本,而是将其标记为过期,在数据页中形成占用空间的死元组。在连续摄取负载下,死元组积累速度超过 autovacuum 回收空间的速度,导致碎片化和性能下降。默认的 autovacuum 设置仅在 20% 的行发生变化后才… 阅读原文 <https://pgnexus.ai/tech-blogs?url=https%3A%2F%2Fwww.tigerdata.com%2Fblog%2Fp...> Top 5 Hacker 技术讨论 近期讨论涵盖多个活跃开发方向。并发 REPACK 工作聚焦于将"未来锁"机制集成进死锁检测器,围绕主动预防与被动检测死锁的方案存在争议。索引预取 API 设计重点讨论 slot 使用方式及跨表访问方法的代码去重问题。消除 XLOG_HEAP2_VISIBLE 后,零空闲空间场景下的 FSM 更新逻辑仍存争议。发布架构变更补丁已获批准。通过 SQLsmith 测试发现了 pg_plan_advice 中半连接规划不一致的问题。 发布时不跳过 schema 变更 <https://pgnexus.ai/hacker-discussions?subject=Skipping%20schema%20changes%20...> Peter Smith 审查了 Vignesh C 提交的两个补丁,这些补丁涉及发布架构变更。补丁 0001 修复了提交 fd366065e0 中的问题,但有一个关于冗余宏的审查意见未解决,Peter 建议在单独的讨论线程中处理。补丁 0002 在发布命令语法中重用了 table_object。Peter 总体上批准了这两个补丁。Amit Kapila 同… 阅读讨论 <https://pgnexus.ai/hacker-discussions?subject=Skipping%20schema%20changes%20...> REPACK [concurrently] 的用法与最佳实践 <https://pgnexus.ai/hacker-discussions?subject=Adding%20REPACK%20%5Bconcurren...> 讨论集中在 PostgreSQL 中实现并发 REPACK 功能,特别是解决死锁检测的挑战。Mihail Nikalayeu 提议修改死锁检测器,在发生死锁时取消其他后端进程而不是 repack 操作。Andres Freund 认为这种方法不够充分,因为它只在锁升级期间死锁实际发生后才检测到,而不是主动预防。Antonin Houska 分享了一个尝试早… 阅读讨论 <https://pgnexus.ai/hacker-discussions?subject=Adding%20REPACK%20%5Bconcurren...> 索引预取机制 <https://pgnexus.ai/hacker-discussions?subject=index%20prefetching> Peter Geoghegan回应了Andres Freund对索引预取实现细节的反馈。讨论重点围绕仅索引扫描的API设计,特别是应该使用TupleTableSlot接口还是创建像table_index_getnext_ios()这样的独立函数。Geoghegan承认使用slot并非最优方案,但指出这是现有行为,建议在内部保持当前基于slot的方法,同时对… 阅读讨论 <https://pgnexus.ai/hacker-discussions?subject=index%20prefetching> 消除 xl_heap_visible 日志以减少 WAL 开销(进而实现按需设置 VM) <https://pgnexus.ai/hacker-discussions?subject=eliminate%20xl_heap_visible%20...> Alexey Makhmutov在最近提交的消除XLOG_HEAP2_VISIBLE的补丁后,对heap_xlog_prune_freeze函数中的FSM(Free Space Map)更新逻辑提出了疑问。当前实现仅在freespace > 0时调用XLogRecordPageWithFreeSpace,但Alexey认为零空间值也是有效的,应该触发FSM… 阅读讨论 <https://pgnexus.ai/hacker-discussions?subject=eliminate%20xl_heap_visible%20...> pg_plan_advice 扩展的使用和优化 <https://pgnexus.ai/hacker-discussions?subject=pg_plan_advice> Alexander Lakhin报告了在Robert Haas提交三个bug修复补丁后,pg_plan_advice遇到的新错误。该问题出现在一个复杂查询中,包含嵌套子查询、LEFT JOIN以及带有表t1和t2之间关联引用的EXISTS子句。错误信息显示"unique semijoin found for relids but not observed… 阅读讨论 <https://pgnexus.ai/hacker-discussions?subject=pg_plan_advice> 想要了解更多 PostgreSQL 社区和行业消息吗? 访问 PGNexus <https://pgnexus.ai> 了解更多
participants (1)
-
postgresnexus@gmail.com