↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

PostgreSQL 博览 RSS 订阅

每日精选 PostgreSQL、数据库与云计算资讯

35 条

PGX 开卖已停止维护版本的 PostgreSQL 补丁

PGX, Inc.PostgreSQL 新闻

很多实例因为各种原因迟迟无法升级,却仍然需要打补丁。PGX 推出 PGX Longevity,为社区已经停止发版的 PostgreSQL 提供关键安全问题和数据完整性问题的回补,覆盖 9.6 到 13;PostgreSQL 14 在今年 11 月拿到最后一个社区版本之后也会纳入。计费按客户固定价格,而不是按实例或 CPU 核心数,并可提供服务级别协议。PGX 同时对所有版本提供包含升级在内的技术咨询。

AWS 写了一份 Aurora 上跑 pgvector 的运维指南

Stefan AichholzerAWS 数据库博客

Stefan Aichholzer 把 Aurora PostgreSQL 上跑生产级 RAG 负载的经验写成一篇指南:HNSW 与 IVFFlat 怎么选,数据集小或已分区、需要百分之百召回时干脆别建索引;文中给出基准 schema,讲了距离算子选择、pgvector 0.8.0 的迭代扫描、用 halfvec 与二值量化省空间,以及靠 REINDEX CONCURRENTLY 处理 HNSW 碎片。

PostgreSQL 19 的 SQL/PGQ 已能表达异构图

Hans-Jürgen SchönigCYBERTEC

Hans-Jürgen Schönig 演示了用 PostgreSQL 19 的 SQL/PGQ 建异构图:一个属性图里同时有 person、company 两类顶点和 knows、works_at 两类边,跨表关系照常查。他也点出眼下的限制,MATCH 子句还不支持逗号分隔的多个路径模式,替代做法是把多个 GRAPH_TABLE 子查询按 ID 列连接。另有两个坑:多标签图里用匿名边会悄悄合并所有边类型,可变长度路径也还没实现。

自托管 TimescaleDB 要按平台工程投入来算账

Matty StrattonTigerData 博客

Matty Stratton 说,把 TimescaleDB 自托管到关键业务上,本质不是一次数据库选型,而是一笔持续的平台工程投入。文章以一家每天采集数十亿条传感器数据的汽车零部件供应商为例,把可用性、恢复、扩展、生命周期管理和合规治理的实际成本逐项摊开:维持生产级部署大约需要 1.5 到 3 名专职平台工程师、稳定的值班轮换、每季度演练和每年一次大版本升级,而且随着数据量和业务重要性增长只会更重。

用 TLS 传输替代 SSH 跑 pgBackRest 灾备

Shridhar KhanalStormatics

Shridhar Khanal 讲了怎么让灾备端通过 TLS 而不是 SSH 连 pgBackRest 仓库。好处是证书体系比逐台预置 SSH 密钥好管,且灾备机只持有一张认证到 TLS 守护进程的证书,被攻陷也拿不到备份节点的 shell。备份节点用 tls-server-auth 把证书 CN 映射到 stanza。注意 pgBackRest 不支持证书吊销列表,撤权得改配置重启;恢复出的实例还留着生产归档命令,启动前必须关掉。

PostHog 重写 SQL 解析器后快了七十倍

PostHogPostHog 工程博客

PostHog 称重写 SQL parser 之后拿到 70 倍提升。具体倍数要结合负载来读,但它说明这类基础工程债确实能直接换成用户可感知的性能。SQL 解析器处在查询编辑器、权限分析、查询重写、语法高亮、自动补全、血缘和优化建议的入口,慢下来会拖累整条开发体验链路。维护数据库控制台、SQL 审计或 AI 生成 SQL 的团队,解析层应该有独立的基准和回归测试,而不是只靠数据库端报错兜底。

37 条

大表按时间排序的查询要靠预聚合而不是索引

TigerDataTigerData 博客

表长到一定规模后,按时间戳排序的查询会突然变慢:同一条语句一千万行时约 180 毫秒,五亿行时要 4 秒,因为索引超出 shared_buffers 后退化成磁盘上的外部归并排序。TigerData 的办法是别再对原始行排序,仪表盘查询改用 time_bucket() 先聚合再排序,4312 毫秒能压到 9 毫秒,高频查询用连续聚合在写入时预计算。

给检查点耗时设一个十五分钟的告警阈值

Jeremy Schneiderardentperf.com

Jeremy Schneider 建议为检查点的总耗时单独设告警:在 checkpoint_timeout 保持默认 5 分钟的前提下,他倾向把阈值定在 15 分钟。更稳妥的做法是监控距离上一条检查点消息过去了多久,这样连停摆到不输出消息的情况也能发现,同时对“检查点过于频繁”告警,那通常意味着要调大 max_wal_size。他特别提醒,检查点停滞时千万不要重启数据库,重启可能让实例陷入恢复循环,把几小时的故障拖成几天。

pgEdge 用 ColdFront 走向无底存储的 Postgres

Shaun ThomaspgEdge 博客

没人再查的数据和天天被查的数据占着一样贵的存储,bottomless Postgres 就是把冷数据挪到对象存储又让查询照常跨层。Shaun Thomas 回顾了几条路线:Neon 换掉整个存储引擎,pg_mooncake 把表镜像成 Iceberg,pg_lake 靠独立的 DuckDB 进程。ColdFront 则把 pg_duckdb 内嵌,归档分区后以 Iceberg 为唯一副本,用解析钩子改写 SQL 路由冷热数据。

cygnet 是一个只服务 PostgreSQL 的异步 Python ORM

Christophe Pettusthebuild.com

Christophe Pettus 写了 cygnet,一个面向异步 Python 的 PostgreSQL 专用 ORM,要求 Python 3.12 与 PostgreSQL 14 以上。它的取向是透明而非省事:SQL 关键字写成大写方法,模型就是普通 dataclass,不需要继承或元类。UPDATE 和 DELETE 必须显式写 .WHERE() 才肯执行,避免全表误伤。JSONB、全文检索和 LATERAL 都是一等操作。

用 postgres-mcp 给数据库做自动体检

Warda BibiStormatics

Stormatics 的 Warda Bibi 讲了怎么用 MCP 在 AI 智能体和 PostgreSQL 之间放一层受控接口,能力在代码里固定而不是靠提示词约束。文中用开源的 postgres-mcp,生产上应开受限模式,把语句包进只读事务并用 pglast 拦下 DROP TABLE。体检项包括膨胀索引、缓存命中率、空闲事务、事务 ID 年龄和复制延迟,索引建议靠 pg_stat_statements 加 hypopg 试算。

研究型文件格式 F3 想把解码器和数据绑在一起

future-file-format 项目GitHub

F3 是一个研究性质的列式数据文件格式,README 直说它只是验证论文想法的原型,不建议用于生产。它值得看的是设计方向:面向现代硬件和负载重构列式布局,并把解码器与数据本身绑定,让格式层能携带自描述元数据和可移植的解码逻辑。数据文件格式是湖仓、OLAP、数据交换和长期归档的底层协议,一旦这层能力变了,查询引擎、存储系统和兼容策略都要跟着调整。短期不必引入,中长期可以跟踪它的论文与基准测试。

Cloudflare 复盘后量子迁移的 2030 期限

CloudflareCloudflare 博客

后量子迁移不是升级一个库那么简单,它牵涉证书、TLS 终端、设备、客户端、供应商、合规,以及今天被抓走的数据在若干年后仍需保密这件事。Cloudflare 从大规模边缘网络的视角复盘了行政令给出的 2030 期限,讨论迁移步骤与目前的缺口。对基础设施团队来说,现在应该做的是盘点 TLS 终端、证书生命周期、依赖库、无法升级的老客户端,以及长期敏感数据的存放位置,而不是等到 2029 年再动手。

36 条

Tomas Vondra 认为 random_page_cost 的默认值该改了

Tomas Vondravondra.me

random_page_cost 的默认值 4.0 来自机械硬盘年代,假定随机读比顺序读贵四倍。Tomas Vondra 在 POSETTE 演讲之后接着写道,SSD 与 NVMe 普及后随机 I/O 与顺序 I/O 的差距已经大幅缩小,这个默认值未必还合适。默认值偏高会让规划器系统性地低估索引扫描,做出更差的计划,他认为社区有必要重新评估并调整它。

CYBERTEC 发布备份恢复工具 pg_hardstorage

Hans-Jürgen SchönigCYBERTEC

CYBERTEC 发布 pg_hardstorage,一个 Apache 2.0 许可的 PostgreSQL 备份恢复工具。Hans-Jürgen Schönig 说它不打算取代 pgBackRest、Barman 或 WAL-G,而是面向 Kubernetes、托管云和混合基础设施这些新部署形态的社区驱动选项。设计上参考了复制协议,重新审视了传统增量备份链的固有问题。项目主页是 pghardstorage.org。

pg_clickhouse 0.3.2 已支持 PostgreSQL 19

David WheelerClickHouse 博客

pg_clickhouse 让 PostgreSQL 直接查询 ClickHouse。David Wheeler 发布的 0.3.2 加上对 PostgreSQL 19 Beta1 的支持,同时保持对旧版本的兼容。CREATE SERVER 新增 secure 与 min_tls_version,可强制 TLS 并指定最低版本;修正了正则标志下推的映射,解决了无缓冲 HTTP 查询与参数化外部扫描的内存问题。升级不需要重启。

跨分片查询慢,多半不怪 enable_async_append

Christophe Pettusthebuild.com

enable_async_append 默认打开,决定规划器是否考虑异步 Append,对应计划里的 Async Foreign Scan 节点。它是 PostgreSQL 14 为 FDW 分片加的:跨多个远端服务器的分区表或 UNION ALL 查询可并发发请求,总耗时从各分片延迟之和变成最慢分片的延迟。但它还要外部服务器上的 async_capable 为真,而后者默认关闭。Christophe Pettus 建议生产上保持打开。

EDB Postgres AI 的 Q2 版本一次给出十项能力

EDBEDB 博客

EDB 发布 EDB Postgres AI 的 2026 年 Q2 版本,一次给出十项新增或增强能力,主线是把 AI 智能体从实验推到生产。其中包括会自行加索引、扩容和打补丁的 Agentic Database,基于 Apache Iceberg 的零 ETL 融合分析,正式可用的 EDB PG AI for ClickHouse,以及用原生角色和行级安全在数据库层管住智能体访问的治理预览。

AWS 推出提供虚拟机级隔离的 Lambda MicroVMs

AWSAWS What's New

AWS 推出 Lambda MicroVMs,基于 Firecracker,官方称它是一种提供虚拟机级隔离、近乎瞬时的启动与恢复、并能保留状态的无服务器计算原语。每个 MicroVM 有自己的 HTTPS 地址,可以挂起再恢复,最长八小时,支持 HTTP/2、gRPC 和 WebSocket,适合给每个用户或每个任务单独一个执行环境的多租户场景。镜像从 Dockerfile 构建,先在五个区域可用,按基线算力计费,超出部分另算。

23 条

PostGIS Tiger Geocoder 2025.1 独立发布

Regina ObePostGIS

Tiger Geocoder 从 PostGIS 主库拆出来独立发布,版本号按发布时的美国人口普查 TIGER 数据年份命名。2025.1 载入 TIGER 2025 数据,最低要求 PostgreSQL 16,代码搬到 OSGeo Gitea 上的独立仓库;数据库搜索路径不再自动包含 tiger schema,需要自己配置。安全上给 schema 与表名加了引号,地址规范化支持按国家解析,高速公路编码认得 SH 与紧凑写法。

effective_io_concurrency 的含义已经变过两次

Christophe Pettusthebuild.com

effective_io_concurrency 控制预取深度,含义随版本改过两次。PostgreSQL 13 之前它要过一个调和级数公式,设成 10 实际只预取三页左右;13 到 17 就是并发 I/O 请求数;18 起它驱动 PostgreSQL 自己的异步 I/O,走 worker 进程或 io_uring,默认值也从 1 改成 16。Christophe Pettus 提醒不要跨大版本照搬旧值,SSD 上可以往几百试但必须实测。

pg_stats 里的四个列决定了规划器怎么估行数

Richard Yenrichyen.com

规划器读的是 pg_statistic,pg_stats 是同一份数据的可读视图,由 ANALYZE 扫表汇总生成,大批量导入后建议手工跑一次。Richard Yen 讲了四个关键列:n_distinct(唯一列为 -1)、null_frac、correlation(物理与逻辑顺序的吻合度)和最常见值列表。直方图默认 100 个等深桶,可用 ALTER TABLE 调大统计目标,多列相关的偏差交给 CREATE STATISTICS。

waxsql 给查询规划器生成类型正确的假查询

Christophe Pettusthebuild.com

waxsql 生成类型正确、语法合法但计算上毫无意义的 SQL,用来给查询规划器做模糊测试、验证解析器、造可复现的负载。它对每个表达式向内部目录询问什么能产生某个类型,因此产出的查询能通过解析分析和类型检查,而不只是语法正确。复杂度由一个 0 到 10 的旋钮控制,schema 与查询各有独立随机流,同一个种子在不同机器上产出相同结果。项目是纯 Python、无运行时依赖,自带语法、解析和 explain 三级校验。

PostgreSQL wiki 新增一页“C 方言”写作约定

Christophe Pettuspgsql-hackers

Christophe Pettus 在 PostgreSQL wiki 上新开了一页 The PostgreSQL C Dialect,把写 C 扩展要知道的约定和惯用写法集中记下来,起因是他写第一个扩展时踩的坑。Tom Lane 表示赞赏,Bruce Momjian 在 Developer's FAQ 上加了链接。Roberto Mello 注意到文中破折号密集,问是否由 LLM 协助撰写、有没有用别的模型核对,截至讨论时无人回复。

11 条

postgres-lsp 为 SQL 与 PL/pgSQL 提供语言服务器

Gavin M. RoyGitHub

编辑器里的 SQL 支持长期依赖正则启发式规则,跳转和补全都不可靠。Gavin M. Roy 发布的 postgres-lsp 基于 tree-sitter-postgres 实现语言服务器协议,用真正的 PostgreSQL 语法解析 .sql 文件,提供诊断、语义高亮、符号大纲、跳转定义、查找引用、上下文补全和函数签名,还能按 river、dbt、pg_dump 等风格格式化。PL/pgSQL 函数体通过语言注入解析。

effective_cache_size 只影响估算,建议设成内存的一半以上

Christophe Pettusthebuild.com

effective_cache_size 不分配内存,只告诉规划器 shared_buffers 加操作系统页缓存大约有多少可用。规划器据此用 Mackert-Lohman 公式估算索引扫描的物理读页数:值大意味着重复访问多半命中缓存,索引扫描显得便宜;值小则更倾向顺序扫描与哈希连接。默认 4GB,Christophe Pettus 建议在数据库专用机上设成物理内存的 50%–75%,且必须大于 shared_buffers,宁高勿低。

Regina Obe 开始用 pg_timetable 替换 pgAgent

Regina ObePostgres OnLine Journal

按 Regina Obe 的说法,pgAgent 正在退场,半年后完全退役,pgAdmin 里的界面也会随之消失。她原先看重的是它跨 Windows 与 Linux、界面内建在 pgAdmin 里、后端就是 PostgreSQL 数据库,一个作业还能包含多个有序步骤。这一篇讲迁移动机并介绍替代品 pg_timetable,第二篇讲怎么在 Linux 上把它配成服务;她还在 GitHub 上做一个仿 pgAgent 的管理界面。

29 条

HypoPG 1.4.3 修复长期缺陷并支持 PostgreSQL 19

Julien RouhaudHypoPG

HypoPG 为 PostgreSQL 9.2 以上版本提供假设索引,可以在不真正建索引的前提下评估索引对执行计划的影响。Julien Rouhaud 发布的 1.4.3 修复了一个长期存在的 Int8GetDatum 缺陷,并补上对 PostgreSQL 19 的兼容,两项改动都由他本人完成,报告缺陷的用户列在 CHANGELOG 里。做索引调优的团队可以直接升级,源码与发布包在 GitHub 仓库获取。

dynamic_shared_memory_type 应当保持平台默认值

Christophe Pettusthebuild.com

dynamic_shared_memory_type 决定 PostgreSQL 启动之后用哪种内核机制分配共享内存,并行查询的运行期空间由它管理。Christophe Pettus 建议保持平台默认,Linux 上是 posix:sysv 受制于陈旧的内核限制,mmap 会把进程间内存变成磁盘 I/O,都只为老平台和调试保留。容器里 /dev/shm 默认只有 64 MB,并行查询会报共享内存无法扩展,正确做法是调大容器共享内存。

多态关联的三项规划器优化仍在 hackers 讨论中

Andrei LepikhovAndrei Lepikhov 博客

多态关联用一个判别列把基表指向多张子类型表,规划器会为每行探测 N 张表,只有一次连接真正命中,规模上去后出现性能悬崖。Andrei Lepikhov 梳理了三条正在 pgsql-hackers 上讨论的改进:Result 过滤在进入内表之前先做单侧条件求值;排序下推把 ORDER BY 与 LIMIT 的排序放到基表扫描之上;SubLink 重定位把 EXISTS 转换出的半连接挪到被引用表附近。三者截至发文都尚未提交。

ClickHouse 开源十周年,贡献者已达 2632 人

Tyler HannanClickHouse 博客

ClickHouse 以彩窗为喻纪念开源十年。Tyler Hannan 给出的数字来自项目自身:system.contributors 表当时列出 2632 位贡献者;截至 2026-03-19,GitHub 上 issue 与 PR 合计突破十万,27600 个 issue 关闭了 23016 个,71284 个 PR 关闭了 70362 个。文章还举了 cBioPortal 的例子,接入之后筛选查询从分钟级降到秒级。

Cloudflare 推出面向 AI agent 的临时账户

CloudflareCloudflare 博客

AI agent 会自动执行部署、调试、查询和配置修改,继续复用长期 token 和共享账号会迅速积累安全债。Cloudflare 发布 Temporary Accounts,把 agent 的身份生命周期做成平台原语,让人类用户与自动化主体分开治理,凭证短期有效并可撤销。这与 MCP 的企业认证、GitHub Actions 触发权限收紧是同一条线索:AI 工具链需要身份、审计和回收机制,而不是只靠 API key 约束。

36 条

pgAdmin 4 v9.16 修复七个安全漏洞

pgAdmin 开发团队PostgreSQL 新闻

pgAdmin 团队发布 4 v9.16,共 64 项修复与新特性,最要紧的是七个漏洞 CVE-2026-12044 至 CVE-2026-12050:对话框模板与还原点端点的 SQL 注入、AI Assistant 事务绕过导致的远程代码执行、无需认证即可访问且含 pickle 反序列化的 SQL Editor 端点、泄露服务器凭据的存储型 XSS,以及多因素认证流程里的开放重定向。同时 pgAgent 宣布弃用,预计半年后移除。

checkpointer 写合并补丁实测 TPS 提升三成

Melanie Plagemanpgsql-hackers

Melanie Plageman 发出 checkpointer 写合并补丁的 v15。新增能力是普通后端和 background writer 写盘时,会在共享缓冲区里找目标块前后相邻的脏块,把写 IO 合并到 io_combine_limit 大小。在 IOPS 受限的环境下测试,pgbench scale 500、8 个客户端、上限 7500 IOPS,TPS 提升约三成,p99 延迟下降约七成半。这一版还补了 TAP 测试。

分区键选得不好会把写入全挤到一个分区

TigerDataTigerData 博客

分区键设计不当,写入会全挤在一个分区上,其余分区几乎闲着。文章梳理了随之而来的连锁反应:B-tree 索引频繁更新、页面分裂加剧、WAL 生成量上升,autovacuum 在热点分区上持续满负荷。文中给出基于 pg_stat_user_tables 的诊断查询,用死元组比例和索引大小定位问题分区。两条出路是改成按时间的 RANGE 分区让写入自然分散,或改用 hypertable 并对旧数据启用列存压缩。

Actions 收紧 pull_request_target 默认值

GitHubGitHub Changelog

GitHub 调整了 Actions 里 pull_request_target 触发时检出代码的默认行为。这个触发器带着仓库写权限运行,一旦顺手检出外部 PR 的代码,发布令牌、包仓库凭据和云密钥就可能落到外部贡献者手里,是经典的配置陷阱,平台改默认值比逐个项目打补丁影响面大得多。用到 pull_request_target、workflow_run 或自托管 runner 的仓库仍应自查。

GitHub 上出现成规模分发恶意软件的仓库群

OrchidFilesOrchidFiles

研究者发现 GitHub 上存在成规模分发恶意软件的仓库群。开发者习惯从搜索结果、README、issue 和 gist 里直接取安装脚本,当恶意仓库能批量生产之后,只看 star 数、只凭看起来像个正经开源项目已经不够用了。AI 编码工具如果会自动检索并引入代码,还会把这类风险再放大一层。构建脚本里的管道执行、来路不明的二进制、没有固定版本的依赖和临时建起来的仓库,都值得更严格的审查。