↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

PostgreSQL 博览 RSS

保留原始来源与发布日期的新闻、博客和活动。

12 条内容

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 的管理界面。

1 条内容