文章

PostgreSQL 每周新闻 2026-10-14

PostgreSQL 每周新闻 2026-10-14

PostgreSQL每周新闻#669 - 2026年10月14日

_config.yml

备注:英文原文地址

img

pg_vectorsearch: 基于分区的 HNSW 替代方案

一个向量搜索扩展,使用 PRISM 向量索引,它扫描压缩的 k-means 分区而不是像 HNSW 那样遍历图,并可用于现有的 pgvector 列。它目前处于 alpha 阶段,需要 Postgres 18+,同时 pgvectorscale 进入维护模式。

Erik Nordström et al. (Tiger Data)

Agent Memory: 原始检索 VS. 提取事实,已测试

Redis 在 LongMemEval 上重新运行了 agent memory 系统。已发布的分数与重现结果相差高达 28 分,将原始对话检索与提取事实配对比单独使用任一方法都更好。查看数据、成本和方法。

Redis 赞助商

Savepoints 如何限制我们的 Postgres 队列

一篇技术性文章,配有一些相当精美的可视化效果,讲述了如何为基于 Postgres 的队列添加更多 workers 却因为每个作业的 SAVEPOINT 而使其变慢(以及使用租约声明作业如何解决了这个问题)。

Rory Malcolm (incident.io)

本周摘要:

  • ⭐ Postgres 19 的发布被推迟到 11 月 19 日,11 月 12 日将发布额外的 RC2 以包含更多近期修复。第一个候选版本仍将于明天(10 月 15 日)发布。

  • ⚠️ PgBouncer 1.26.1 修复了三个 CVE,最严重的是当使用 SCRAM 认证时,知道一个用户密码的客户端可以以不同用户(甚至超级用户)的身份登录。

‘回滚将持续到士气改善为止’

一位 Postgres 提交者(他自己的工作也在其中受到影响)分享了他对为什么在 beta 期间有这么多 Postgres 19 功能被回滚的看法。

Peter Eisentraut

📊 与此同时,Kaarel Moppel 对 Postgres 19 betas 进行了 800 小时的基准测试,发现在 OLTP 工作负载上它比 v18 快几个百分点。

不要依赖 SELECT 顺序:随机打乱你的行,看看会出什么问题

如果你的应用或测试隐式依赖于按插入顺序返回的行,这可能会导致许多烦人的 bug(我自己也曾被咬过!)。pg_disorder 扩展会打乱缺少 ORDER BY 的 SELECT 结果,以在测试中捕获此类 bug。

Yaroslav Kurbatov (Evil Martians)

删除行对表的影响

一个简洁的解释和演示,涵盖了一个常见的误解。删除表中一半的行,然后运行 VACUUM,表在磁盘上仍占用 137 MB,只有 VACUUM FULL 才能回收它。

Hollis Varden

📄 为什么将 archive_command 设置为 /bin/true 会导致数据丢失 – 这个”修复”满 WAL 磁盘问题的方法会在没有警告的情况下破坏恢复。Shaun Thomas

📄 PgBouncer 池化模式实践 – 事务池化对 advisory locks 的影响。Oskar Dudycz

📄 PgBouncer vs. Amazon RDS Proxy: 两种池化工具的差异 Wood and Chiba (AWS)

📄 TABLESAMPLE 如何选择行 Radim Marek

📰 分类广告:

RDST 的始终在线代理监视每个 PG 查询,自动向你发送已解释的修复,并在应用后验证它们是否有效。让代理在你的 Postgres 数据库上工作。它是免费的。

⚡ Rebase: 一个用于 Postgres 的开源后端。REST、类型化 SDK、认证、实时、存储和一个你不必构建的管理面板。

试用 ClickHouse Managed Postgres: 对于 I/O 密集型工作负载,在本地 NVMe 上快达 10 倍,并与原生 ClickHouse 集成。

🛠 代码和工具

img

pg-delta: 将 Postgres 模式差异转换为有序迁移

Supabase 的新开源模式差异引擎。将它指向两个 Postgres 14-18 数据库,就能得到涵盖 RLS 策略、权限和域的有序迁移。它取代了已弃用的 migra,但仍处于 alpha 阶段。

Valleteau and Xie (Supabase)

asyncpg 0.32.0: Python/asyncio 的快速 Postgres 客户端库

这个长期存在的用于 asyncio 框架的 Python 客户端库现在支持 Postgres 19,以及新发布的 Python 3.15。

MagicStack

Orafce: Postgres 的 Oracle 兼容性函数

实现了一些 Oracle 函数,这些函数对于迁移到 Postgres 的用户可能有用。我们已经好几年没有链接这个项目了,但它仍在频繁发布。

Orafce Project

  • wal2json 2.7 – 一个逻辑解码插件,将行更改输出为 JSON,被许多变更数据捕获设置使用。这是两年多来的第一个版本,添加了 Postgres 18 和 19 支持。

  • PGQueuer 1.6 – 一个构建在 Postgres 上的 Python 作业队列库。

  • Squawk 2.68 – 一个用于 Postgres 模式迁移的 linter。

本文由作者按照 CC BY 4.0 进行授权