标签

PostgreSQL

查询结果没变,数据库却慢了:用 RegreSQL 2.0 把执行计划纳入回归测试

来源: postgr.es 23
数据库回归测试常常只回答一个问题:SQL 返回的行是否正确。但生产事故还有另一种典型形态:结果完全正确,执行方式却从索引扫描悄悄变成全表扫描。测试全部通过,接口则随着数据增长逐渐超时。 RegreSQL 2.0 将测试边界从“返回了什么”扩展到“怎样返回”:除了比较结果集,还检查执行计划、实际读取的缓冲区、磁盘溢出、节点实际行数和基数估计误差,并允许使...

PostgreSQL 排序慢,别急着关闭 enable_sort

来源: postgr.es 45
查询计划里出现一个耗时很长的 节点时,把 设置为 看起来像是最直接的处理方式。但这个参数控制的是规划器对显式排序计划的偏好,并不能消除查询本身对有序结果的需求。排序慢通常应该从内存、索引和返回数据量入手,而不是把 当成性能开关。 是 PostgreSQL 的规划器配置参数(GUC)。关闭它会让规划器尽量避免选择显式排序步骤,但 PostgreSQL 无...

让一场 PostgreSQL 分享持续生长:从直播、转写到长期讨论

来源: postgr.es 27
技术会议的基本形态多年未变:讲者上台演讲,现场听众提问,幻灯片稍后上传,剪辑后的视频可能再等几周。这个流程适合线下交流,却没有充分利用直播、自动转写、机器翻译、全文检索和 AI 摘要已经具备的能力。 对于 PostgreSQL 这样的国际开源社区,问题尤其明显。旅行成本、签证、时区和语言会挡住大量开发者,而一次有价值的讨论往往在会议散场时也随之消失。更...

PostgreSQL Buildfarm Client 21:补丁栈测试、ABI 检查与非标准分支支持

来源: postgr.es 33
PostgreSQL Buildfarm Client 21 的变化不只是一批兼容性修复。它新增补丁栈与 ABI 检查模块,改进非标准分支和 Meson 构建识别,同时强化跨版本升级测试、超时诊断与失败日志归档。对于维护私有 Buildfarm、扩展分支或长期补丁队列的团队,这一版解决了不少日常自动化中的实际痛点。 新的 PatchStack 模块面向...

PostgreSQL 的 enable_seqscan=off 为什么仍会执行顺序扫描

来源: postgr.es 42
是一个名字很容易引起误解的 PostgreSQL 查询规划参数。把它设为 ,并不等于关闭顺序扫描;它表达的是“尽量不要选择顺序扫描”。当读取整张表是回答查询的唯一合理方式时,规划器仍然会生成 。 理解这一点很重要,因为这个参数适合诊断执行计划,却不适合被当作禁止某类算子的开关。 PostgreSQL 的规划器会比较多条候选执行路径的估算成本,例如: 顺...

接手看不懂的 PostgreSQL 查询:用 DBeaver AI 拆解,再用执行计划验证

来源: postgr.es 27
生产环境里经常会出现一种“跨过围栏扔过来”的 SQL:多层 CTE、相关子查询、窗口函数和含义模糊的别名挤在一起,原作者已经联系不上,但你仍然要判断它做什么、是否正确,以及为什么这么慢。DBeaver Community Edition 26.1.2 将 AI Assistant 加入免费开源版本,为这类查询提供了一个实用的阅读入口。 AI 可以快速解...

zorm v1.8.5 性能优化:用原生 SQL 保住可控性,并用基准测试验证升级

来源: oschina.net 26
zorm v1.8.5 的发布重点是性能优化。这个 Go 轻量 ORM 继续采用原生 SQL 路线,强调较低的学习成本,同时覆盖 MySQL、PostgreSQL、Oracle、SQL Server、SQLite、DB2、ClickHouse、TDengine,以及达梦、金仓、神通、南通 GBase 等数据库。对已经在生产环境使用 zorm 的团队来说...

PostgreSQL 18 自连接消除:让 ORM 生成的冗余 JOIN 不再拖累查询

来源: postgr.es 42
应用程序很少独自决定最终执行的 SQL。ORM 会拼接关联,视图会隐藏更多查询层,业务代码还可能在外面继续包装。多层组合之后,同一张表可能通过主键与自己连接,而这个 JOIN 既没有增加行,也没有提供新的信息。PostgreSQL 18 引入的 ,正是用来帮助优化器识别并移除这类冗余自连接。 下面的查询看起来有两个数据来源,实际上 使用了主键等值连接。...

PostgreSQL 的版本号不等于现场真相

来源: postgr.es 37
一套标称为 PostgreSQL 14 的数据库抛出了一个 PostgreSQL 14 理论上不会产生的错误。这个故事的价值不在于“版本号看错了”这么简单,而在于提醒我们:生产环境里的数据库身份,不能只靠一个版本字符串判断。 当错误信息、客户端库、代理层、托管服务补丁、容器镜像和扩展混在一起时,“PostgreSQL 14”可能只是地图上的标签,不一定...

PostgreSQL 做 AI 数据底座:用 C.A.L.M. 检查治理是不是真的落地

来源: postgr.es 24
企业 AI 治理最容易出问题的地方,往往不是模型团队写错了提示词,也不是合规团队没有流程,而是数据层和模型层之间的假设没人验证。数据工程、AI、平台、合规四个团队都在认真做事,但客户数据可能已经被复制到三套环境里:字段定义略有不同,访问控制略有不同,刷新频率也不同。模型层说“只给授权用户看”,数据层反问:“哪一份数据?按哪套权限?什么时候刷新?” 这正...