标签

PostgreSQL

PostgreSQL 16 的 Kerberos 凭据委派:启用 gss_accept_delegation 前要想清楚什么

来源: postgr.es 47
PostgreSQL 16 新增了 :服务器可以接收客户端委派的 Kerberos/GSSAPI 凭据,并在访问其他服务时代表该用户完成认证。这解决了多跳认证中的一个老问题,但默认值仍是 ,因为一旦接受委派,数据库会临时持有足以代表用户行动的凭据,安全边界也随之改变。 普通 Kerberos 登录只证明“客户端是谁”。假设 Alice 使用 GSSAP...

从持续贡献到逻辑复制改进:Fujitsu 如何参与塑造 PostgreSQL 19

来源: postgr.es 46
PostgreSQL 19 的演进不只来自某个单独功能,也依赖企业工程团队长期参与补丁开发、代码审查和社区协作。Fujitsu 的 PostgreSQL 团队通过持续提交代码、获得社区认可,并推动逻辑复制相关改进,进一步扩大了其在 PostgreSQL 开源生态中的影响。 由于摘要没有列出具体补丁名称和最终合入状态,本文不会把尚未明确的细节写成既定功能...

用 CALM 测试识别企业平台的隐性衰退

来源: postgr.es 52
企业平台很少在某次故障中突然死亡。更常见的过程是:升级不断延期,发布窗口越来越长,恢复演练一再推迟,团队开始绕开平台建设旁路系统。监控仍然全绿,但组织已经不愿意再碰它。 CALM 平台测试关注的正是这种“稳定但正在失去未来”的状态。它不盘点平台拥有多少功能,而是判断平台增长之后,组织是否更有信心继续改变它。 CALM 由四个维度组成: C,Change...

PostgreSQL MVCC 的代价:真正该比较的是谁为历史版本买单

来源: postgr.es 43
PostgreSQL 的 MVCC 经常因表膨胀、写放大、VACUUM 调优和 32 位事务 ID 被批评。这些问题都真实存在,但只说“PostgreSQL 的 MVCC 很差”还少问了一步:如果读者不能阻塞写者,那么旧版本必须保存在某个地方,清理成本也必须由某个组件承担。不同数据库没有消灭这笔成本,只是决定由写入、历史读取、缓存、临时空间还是后台整理...

PostgreSQL 的隐形截断器:谨慎使用 gin_fuzzy_search_limit

来源: postgr.es 41
数据库查询变快,通常不应该以悄悄改变结果为代价。PostgreSQL 的 正是一个需要格外警惕的配置:当 GIN 索引扫描命中大量候选项时,非零限制可能让数据库只处理随机选出的部分候选项。查询仍然正常完成,也不会提示结果不完整,但本应返回的行可能消失。 这不是普通的执行超时或结果行数限制,而是从完整性换取速度。理解它的生效范围、随机性和配置层级,比记住...

Postgres 激进特性为何应该先在分支版本中经受真实负载

来源: postgr.es 59
Postgres 的竞争力不只来自某项查询优化技术。对大量生产用户而言,更重要的是开源、没有厂商锁定、维护路径清晰,以及出现问题时总能找到理解内核的人。它未必在每种负载下都最聪明,但通常足够可靠、足够可预测。 这也解释了为什么一个看起来很有价值的新特性,很难直接进入 Postgres 核心。核心代码承载着关键业务数据,每增加一条执行路径,社区就要长期承...

把 AI 接入 PostgreSQL 开发:从邮件线程分析到补丁审查

来源: postgr.es 60
一次面向 PostgreSQL 提交者与核心团队的 AI 工作坊,把讨论重点从“模型能回答什么”推进到了“模型如何参与真实的数据库工程”。三天的内容覆盖 Claude 命令行环境、自动化测试与基准测试、概念验证补丁,以及邮件线程分析和补丁审查。真正值得关注的不是生成代码本身,而是如何让 AI 在可验证、可回滚的边界内缩短调查周期。 数据库内核中的很多想...

PostgreSQL GEQO 的七个参数:真正值得调整的通常只有 geqo_threshold

来源: postgr.es 47
当一条 SQL 连接的表越来越多,PostgreSQL 需要评估的连接顺序会快速膨胀。遗传查询优化器 GEQO 用近似搜索控制规划时间,为此提供了七个 GUC 参数。但参数多不等于都值得调整:日常性能治理中,最有实际意义的通常是 ,其余参数更适合作为 PostgreSQL 内部算法的控制面,而不是常规调优旋钮。 对于少量表连接,PostgreSQL 可...

PostgreSQL 的 full_page_writes:崩溃后为什么 WAL 要记录整页

来源: postgr.es 37
看起来像一个直接的性能开关:关闭后 WAL 变小,写入量也可能下降。但它承担的职责并不是普通的日志优化,而是避免 PostgreSQL 在崩溃恢复时把一张“撕裂页”误认为有效数据页。除非你能够严格证明底层存储能保证原子页写入,否则关闭它通常是在用恢复可靠性换取一部分 I/O。 PostgreSQL 的表和索引由固定大小的数据页组成,默认页面大小通常是 ...

PostgreSQL 19 让 Autovacuum 学会排优先级:评分、权重与并行清理

来源: postgr.es 52
Autovacuum 从 PostgreSQL 8.1 起就承担着回收死元组、刷新统计信息和防止事务 ID 回卷的工作。PostgreSQL 19 的关键变化,不是增加另一条触发规则,而是让维护任务有了明确的优先级:数据库和表都会先接受风险评估,autovacuum worker 再处理最紧迫的对象。 这改变了一个长期存在的问题。过去,接近事务 ID ...