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

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

PostgreSQL 博览 RSS 订阅

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

15 条

pgEdge 开源 MM-Ready 检查多主复制可行性

Antony PeggpgEdge 博客

把现成的库改成多主复制往往先要动 schema:UPDATE 与 DELETE 的复制依赖主键,外键级联会制造冲突,一些序列类型和扩展也不兼容。pgEdge 产品经理 Antony Pegg 把这套评估做成了命令行工具 MM-Ready,围绕 schema、复制配置、扩展、序列、触发器和 SQL 写法执行 56 项检查,结果按严重程度分成四级。工具有连库扫描、只读结构文件、审计已部署的 Spock 和长期观察四种模式。

EXPLAIN 的五个冷门选项各自能看到什么

Richard Yenrichyen.com

Richard Yen 整理了 EXPLAIN 里容易被忽略的五个选项。BUFFERS 区分 shared hit 与 shared read,用来判断是缓存没命中还是内存吃紧;MEMORY 单独报告规划阶段用掉和申请的内存;WAL 给出记录数、整页写和字节数,适合看批量导入与复制压力;SETTINGS 列出影响规划的参数;VERBOSE 展开列引用与模式限定名,能看清视图展开和规则重写。他建议组合使用,并把同样的开关配进 auto_explain。

12 条

PostgreSQL 19 收入 pg_plan_advice 模块

Hubert 'depesz' Lubaczewskidepesz.com

Robert Haas 在 3 月 12 日提交了 contrib 模块 pg_plan_advice,它把连接顺序、连接方式、扫描方式和并行策略等规划器决策写成一段文本建议,用来固定已经验证过的执行计划。用法是 SET pg_plan_advice.advice 指定建议,再用 EXPLAIN (plan_advice) 查看规划器给出的建议文本。depesz 提醒这是把双刃剑:建议一旦写死就长期生效,数据分布变了很容易把查询锁死在糟糕的计划上。

pg_regresql 让规划器改用目录里的统计

Radim Marekboringsql

PostgreSQL 规划器不看 pg_class.relpages,而是量磁盘文件大小再缩放行数估计,所以把生产统计灌进小测试库仍复现不出生产计划。Radim Marek 的 pg_regresql 挂在 get_relation_info_hook 上,等规划器读完物理指标,再把已 ANALYZE 表的页数与行数换回目录中的值,未分析的表保持原样。扩展不需要配置、后台进程或共享内存,LOAD 一次即生效,支持 13 到 18。

重置序列时 START WITH 并不会改动计数器

Deepak MahtoDatabase Rookies

Deepak Mahto 在 Oracle 迁移中发现,ora2pg 用 ALTER SEQUENCE … START WITH 重置序列并不生效,直到对账出现差额才暴露。序列的计数器在 last_value 上,START WITH 只改 start_value。真正的重置要用 RESTART WITH n 或 setval(seq, n, false),两者都让下次取值等于 n。迁移流水线更适合后者,它能被逻辑复制传播。

17 条

PostgreSQL 19 拟把 JIT 默认关掉

Tomas Vondrapgsql-hackers

把 jit 的默认值从 on 改成 off,在邮件列表上获得了一致支持。理由有两条:JIT 刚引入时分区表还不普遍,如今分区用得多了,被误伤的查询也多了;LLVM 自身的编译性能这些年在退步,默认开启的收益越来越薄。Jelte Fennema-Nio 已把提案标记为可供提交者处理,Tomas Vondra 表示若无人反对就在几天内提交,Tom Lane 也表态支持。时机上大家倾向于现在就动手而不是等到测试版中期,好让负面反馈尽早暴露。

postgres_fdw 的释放后使用缺陷会导致崩溃

Etsuro Fujitapgsql-hackers

问题出在事务状态检查上:SELECT 期间 pgfdw_reject_incomplete_xact_state_change() 会销毁连接并把缓存条目置空,但扫描状态里那份指针仍指向已释放的内存,随后执行 close c1 之类的命令就会访问野指针而崩溃。Etsuro Fujita 的补丁把 PGconn 的释放推迟到事务回滚清理时进行,复测确认崩溃消失。该缺陷影响 14 及以后版本,需要回迁到各稳定分支。

只追加负载在为用不上的 MVCC 付费

Matty StrattonTigerData 博客

Matty Stratton 算了一笔账:MVCC 让读写互不阻塞,代价是每行都带 23 字节的事务可见性头部,算上对齐填充是 28 到 30 字节。IoT 管道、金融流水、可观测性这类只追加的负载并不修改已写入的行,却照样承担全部成本:高频写入下写放大到 3 至 5 倍,autovacuum 为设置提示位和冻结事务号持续运转,WAL 也随之膨胀。解法是让存储形态匹配负载,例如用列式存储把行批量打包,摊薄 MVCC 的固定开销。

Patroni 集群系列第三篇接上 HAProxy 分流

Shaun ThomaspgEdge 博客

Shaun Thomas 的 Patroni 高可用系列走到第三篇,前两篇搭起 etcd 与 Patroni 本体,这篇补上入口。HAProxy 以裸 TCP 转发连接,用 HTTP 检查打 Patroni 的 REST 接口判断角色:6543 端口只连主库,根路径返回 200 者为主;6544 端口连只读副本,用 /replica?lag=1MB 排除延迟过大的节点。三节点同在一个后端池,默认三次检查失败即摘除,并断开其上会话防脑裂。

pg_clickhouse 0.1.5 修掉渗透测试发现的问题

David E. WheelerJust a Theory 博客

pg_clickhouse 是把 PostgreSQL 接到 ClickHouse 的扩展,由 ClickHouse 赞助开发。David E. Wheeler 发布的 0.1.5 是一次维护更新,修掉了渗透测试和一份社区安全报告中发现的崩溃与漏洞,文章没有展开具体的技术细节。安装渠道有三条:PGXN 包仓库、GitHub 的发行页和 Docker 镜像。作者说明自己近期主要精力在公司内部项目上,这个版本是针对已报告问题的响应。

18 条

PostgreSQL 19 引入 REPACK 命令

Hubert 'depesz' Lubaczewskidepesz 博客

Álvaro Herrera 在 3 月 10 日提交了 Antonin Houska 的补丁:PostgreSQL 19 新增 REPACK 命令,把 VACUUM FULL 与 CLUSTER 合并成一套接口。不带索引就是去膨胀,带 USING INDEX 则按索引重排并标记为聚簇索引。进度可从 pg_stat_progress_repack 视图看,原有两条命令保留但不再主推。并发版本没有进来,作者称这只是第一步。

PGConf.dev 2026 公布日程并加设社区专题

Slonik Events CanadaPostgreSQL 新闻

PGConf.dev 2026 将于 5 月 19 至 22 日在加拿大温哥华举行,由 Slonik Events Canada 承办,面向用户、开发者与社区组织者,主题是 PostgreSQL 的开发与社区建设。主办方宣布日程已经发布:今年在周二新增了由社区主导的专题环节,并围绕 PostgreSQL 项目三十周年安排了一系列特别活动与演讲。会上可以见到贡献者本人,也能了解正在开发中的新特性,各日程页面已在官网开放查阅。

PostgreSQL 17 升 18 的方法与坑位盘点

Ilya KosmodemianskyData Egret 博客

Ilya Kosmodemiansky 把大版本升级的三条路摆在一起比:pg_dump 加 pg_restore 停机以小时计、要两倍空间,只适合小库;pg_upgrade 的 link 模式停机以分钟计、几乎不占额外空间,是多数生产场景的选择;逻辑复制只在切换瞬间停机,代价是完整复制一份集群。他建议提前几天用 --check 试跑,并用 PgBouncer 排空连接。坑位包括复制槽失效需重建、扩展版本要核对、配置文件不会自动搬过去。

efm_extension 让故障切换不再依赖 SSH

Vibhor KumarVibhor Kumar 博客

零信任环境里 SSH 往往被收紧,可故障切换偏偏要在操作系统层面执行。Vibhor Kumar 把 efm_extension 开源出来,用 SQL 函数暴露 EDB Failover Manager 的操作,涵盖集群状态查询、计划内切换、故障转移和节点启停,DBA 在连接里就能完成。实现上靠一份收得很紧的 sudoers 配置,只允许 PostgreSQL 服务账号执行特定的 EFM 命令。代码按 PostgreSQL 许可证发布。

传感器数据当成普通事务行来存迟早出事

Jake HertzTigerData 博客

Jake Hertz 指出开发者常把传感器读数当作普通业务数据:规范化建模、关系式组织,设备一多、采样一密、历史一长就撑不住。问题出在认知上,传感器数据长得像行,实际行为却是按时间排好的流,价值随时间衰减。面向行的做法很难同时应付持续的写入尖峰、按时间范围的查询和乱序到达的数据。他给出的方向是把这类数据当作只追加的日志来对待:写入路径按日志优化,按时间分区组织,按生命周期分层存储,并让不同负载各用各的角色。

19 条

PostgreSQL 19 的发布可以排除指定表

Hubert 'depesz' Lubaczewskidepesz 博客

Amit Kapila 在 3 月 4 日提交了 vignesh C 等人的补丁:PostgreSQL 19 的 FOR ALL TABLES 发布可以排除若干张表,写作 FOR ALL TABLES EXCEPT TABLE (public.t5, s1.t1),被排除表的数据不再发往订阅端。分区表按根表排除,现有和将来的分区一并生效。限制也明确:已有的 FOR ALL TABLES 发布不能事后增删排除项,硬来会报错。

只读连接模式的提案在邮件列表上摊开讨论

Andrei Lepikhovpgsql-hackers

起因是想给 AI 工作流一个安全入口。Andrei Lepikhov 提出用 pg_readonly 扩展解决,反问是否真要改内核。Bruce Momjian 认为随着 MCP 越用越多,只读应当是数据库自带的能力。Peter Eisentraut 坚持只读是事务属性,不是访问控制。Andres Freund 举出计划内切换和优雅关闭的场景,认为临时只读本身有价值。悬而未决的是做成会话级还是集群级,以及要不要连 vacuum 一起挡住。

Specific 用 Neon 为编码代理批量开数据库

Andy HattemerNeon 博客

Specific 是一家 Y Combinator 公司,做编码代理的云平台,每个编码任务配一个独立数据库,避免代理之间互相干扰。这套东西建在 Neon 上:用分支功能从快照秒建副本,新任务一来数据库立刻可用,规模上到数千个库。联合创始人 Iman Radjavi 说,选 Neon 看中的正是即时创建与分支这两点,正好对上代理式基础设施随建随弃的用法。这类场景里单个库都很小,但数量极多、生命周期很短,和传统实例规划的思路不同。

把 RAG 的记忆放进 SQL 引擎里换一致性

Ibrar AhmedpgEdge 博客

Ibrar Ahmed 数了常见 RAG 栈的几处毛病:检索无状态,同一个问题两次问出不同答案;多个代理并发写入时操作只完成一半,向量与原文脱节;记忆如何演变没有记录,事后无法复盘或审计;外部向量库的最终一致性还会在并发写时返回旧数据。他主张把 PostgreSQL 当作事务型记忆引擎,让向量、元数据和会话状态在一个事务里提交:pgvector 提供 HNSW 与 IVF 索引,外键杜绝孤立向量,行级安全隔离租户,WAL 记下每次变更。

Takton 两个月用 Tiger Data 做出设备监控产品

Farbod MoghaddamTigerData 博客

Takton 的 Sense Manufacturing 给中小制造商监控机器功率与振动,设备每几秒往 Tiger Cloud 送一次数据。团队在写生产代码之前就定下了数据平台:起初考虑 InfluxDB,最后选 Tiger Data,理由是数千台设备的高频写入更扛得住,整条链路能统一在 SQL 上,托管服务也省掉运维。从第一次提交到设备进客户现场只用了两个月。平台保留全分辨率时序数据做异常检测,按厂商口径已提前数天发现过设备故障。

17 条

PostgreSQL 18 开始对 MD5 口令发出弃用警告

Rafia SabihCYBERTEC 博客

PostgreSQL 18 在 password_encryption 设为 md5 且创建或修改口令时会发出警告,提示 MD5 已弃用、将来会移除,新参数 md5_password_warnings 可关掉这条提示。迁移路径是改用 scram-sha-256,它更安全且早已是默认值。要注意 MD5 口令无法直接转成 SCRAM,必须逐个重设所有用户的口令,确认客户端库支持 SCRAM,并改掉 pg_hba.conf 里的认证方式。

PostgreSQL 19 的 pg_dumpall 支持非文本格式

Hubert 'depesz' Lubaczewskidepesz 博客

Andrew Dunstan 在 2 月底推送:pg_dumpall 不再只能输出纯 SQL 脚本,还支持 custom、directory 与 tar。非文本格式产出一个目录:toc.glo 存放角色与表空间等全局对象,map.dat 记录库 OID 与名字的对应,databases 下按 OID 存放各库归档。pg_restore 随之扩展,先恢复全局对象再逐库恢复,新增 --globals-only,也能从整集群备份挑单库恢复。

Redgate 的 pgNow 提供免代理的即时体检

Hamza SajawalStormatics 博客

pgNow 是 Redgate 出的轻量 PostgreSQL 诊断工具,不装代理,连上去就能看当前状态。它读 pg_stat_activity 与 pg_stat_statements,汇总查询负载与会话、索引使用和 vacuum 活动等指标。使用前要启用 pg_stat_statements,并建一个对相关系统视图有 SELECT 权限的监控用户。Linux 下解压后以非 root 运行,Windows 有安装包,目前免费。

Xata 用原生 Postgres 顶掉了一整套 OLAP 栈

Noémi VányiXata 博客

Xata 把自家的产品分析仓库直接建在原生 PostgreSQL 上,理由是中小规模的分析负载用不着专门的 OLAP 系统。他们把认证、用量、计费和行为事件四套数据汇到一处:PostHog 走自带管道每日同步,数据库快照用 Kubernetes 定时任务拉取,计费数据用自写的批量上传程序。落地后用物化视图把 JSONB 事件属性摊平,用 pg_cron 定时刷新,用数据库分支安全地改表结构;分析压力上来再上 pg_duckdb。

工业数据放进 PostgreSQL 才好被 AI 代理查询

Damaso SanojaTigerData 博客

工业现场的统一命名空间架构通常把时序数据和设备层级上下文放在两套系统里,问一个有意义的问题就得先做集成。Damaso Sanoja 的做法是两边都放进 PostgreSQL:uns_namespace 表存 ISA-95 层级映射,tag_history 表存带时间戳的传感器读数,用外键在数据库层面保证质量,一条 SQL 连接即可完成上下文化。这样既能回答「多个厂区里哪台设备表现最好」,也让 AI 代理经由 MCP 直接理解工厂结构。

22 条

PostgreSQL 19 第四次 CommitFest 特性综述

Pavel LuzanovPostgres Professional 博客

Pavel Luzanov 盘点 2026 年 1 月 CommitFest 进入 PostgreSQL 19 的改动。分区表可以合并与拆分,pg_dump 开始支持扩展统计信息。逻辑复制方面,打开 WAL 逻辑解码不再需要重启,槽同步延迟也可以监控。监控侧新增 pg_get_multixact_stats,vacuum 与 analyze 的进度信息更细,另有 vacuumdb 演练模式和 LISTEN/NOTIFY 的性能改进。

pg_gather 33 重做等待事件分析与巡检项

Jobin AugustinePercona 博客

pg_gather 是 Percona 的 Jobin Augustine 维护的免安装 PostgreSQL 诊断工具,采集一次即可生成体检报告。33 版重做了等待事件部分:分类着色、汇总图表、悬停查文档,并按版本处理 16 与 17 之间改过的事件名。巡检项新增孤儿文件检测、pg_hba.conf 规则求值与 IP 计算、两个超时参数的检查,以及同步提交与备库名单的一致性判断,同时补上 PostgreSQL 18 的持续采集支持。

pgAdmin 4 新增用大模型解读执行计划

Dave PagepgEdge 博客

Dave Page 介绍了 pgAdmin 4 的 AI Insights:EXPLAIN 结果里多出一个页签,由大模型给出性能小结、按严重程度标出瓶颈,并给出可直接执行的修改建议。模型可以接 Anthropic、OpenAI 这类云端服务,也可以用 Ollama 或本地容器跑,在偏好设置里配置。前端会把 JSON 格式的执行计划连同原始 SQL 发给后端再组装提示词,接云端模型时要考虑这两样内容外发。官方提醒建议须自行验证。

Bruce Momjian 认为 COMMENT 因 MCP 重新变重要

Bruce MomjianMomjian 博客

数据库对象上的 COMMENT 长期被当作可有可无的文档。Bruce Momjian 指出,MCP 客户端要理解库里有什么才能干活,而它们能依据的只有表结构、对象命名和约束;有了注释,模型才更容易把用户的说法对上具体的表和列,生成的 SQL 也更靠谱。他给出两条路:一是让使用者手写注释,为 AI 客户端补上业务语境;二是反过来用生成式 AI 读取实际数据,自动产出合适的注释。文章只谈思路,没有给出具体写法。

Tiger Cloud 升级压缩数据查询与默认版本

Naveen SukumarTigerData 博客

TigerData 一次性放出 Tiger Cloud 的多项更新。TimescaleDB 升到 2.25,新增 ColumnarIndexScan 执行路径并改进连续聚合,厂商称压缩数据上的查询最高快 289 倍。平台默认版本换成 PostgreSQL 18,带来异步 I/O 相关的改进。此外新增 Azure Marketplace 自助注册、Azure 分层存储和 AWS 欧洲区域,控制台加了浮动 SQL 编辑器与作业时间线。