选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 17 条。

PostgreSQL 19 用两个 contrib 模块给出查询提示

Shaun ThomaspgEdge 博客

查询提示在 PostgreSQL 社区争论了二十年,19 的答案是 Robert Haas 写的 pg_plan_advice 和 pg_stash_advice 两个 contrib 模块。提示不写进 SQL:一种是设 pg_plan_advice.advice 这个 GUC 给建议,另一种是把命名的建议集放进共享内存按查询 ID 匹配,可按会话或数据库限定范围。可指定扫描方式、连接顺序、连接方法和并行度,聚合与集合运算仍管不了。

CloudNativePG 给出测试 19 Beta 的方法

CloudNativePGCloudNativePG 博客

PostgreSQL 19 Beta 1 发布次日,CloudNativePG 就在 postgres-containers 仓库放出 19beta1-minimal-trixie 系列镜像。做法很短:在 Cluster 资源里把 imageName 指向该镜像,设好实例数和存储,部署后用 kubectl exec 执行 select version() 确认版本。项目方明确 Beta 镜像不用于生产,目的是在正式发布前把缺陷试出来。

行存导致的读放大是分析查询的瓶颈

NanoHertz CommunicationsTigerData 博客

PostgreSQL 按行存储,一张 15 列的表哪怕只查 2 列,扫描时仍要把匹配行的全部列读进来。文章给的例子是每行只需要 12 字节却读了 200 字节,放大约 16 倍;索引解决不了这件事,因为索引优化的是选哪些行,不是每行读多宽。列式存储按列组织数据,只读需要的列。TigerData 给出的折中是 Hypercore:新数据保持行格式保证写入速度,旧数据转成列格式提升分析扫描效率。

社区提议在 PostgreSQL 20 移除 refint 模块

Ayush Tiwaripgsql-hackers

Ayush Tiwari 提议把 contrib 里的 refint 模块在 PostgreSQL 20 中删掉。文档早就写明它的功能已被内置外键取代,最近又接连暴露问题:级联 UPDATE 置空时崩溃、计划缓存损坏,维护成本超过了它作为示例代码的价值。补丁从 contrib/spi 移除相关文件并调整升级测试。Nathan Bossart、Daniel Gustafsson 和 Tom Lane 都赞成移除,建议先在文档里预告。