标签

数据库

PostgreSQL 的“每个关系一个文件”:为什么勒索恢复会变得棘手

来源: postgr.es 27
一次勒索软件恢复案例把一个平时很少被业务开发者关注的 PostgreSQL 存储细节推到台前:PostgreSQL 通常把每张表、每个索引等 relation 存成独立文件。这个设计让定位、截断、清理、备份某些对象更直观,但当系统目录被破坏、部分文件被加密或删除时,恢复人员可能会发现:数据文件还在,数据库却“不认识”它们了。 这篇文章从工程视角拆开这个...

袋鼠数据库工具 v9.6.1 上线:把多数据库日常操作收进一个客户端

来源: oschina.net 43
袋鼠数据库工具 v9.6.1 已上线。它定位为一款 AI 驱动的数据库系统客户端,覆盖 MariaDB、MongoDB、MySQL、Oracle、PostgreSQL、Redis、SQLite、SQLServer 等常见数据库,并支持 Windows、macOS、Linux。对开发者来说,这类工具的价值不只是“连上数据库”,而是把建表、查询、模型、同步...

pgsql_tweaks 1.0.5:一次专门修好卸载脚本的小版本

来源: postgr.es 39
PostgreSQL 扩展的价值不只在安装那一刻,也体现在升级、迁移和卸载时是否可靠。 1.0.5 是一个很小的维护版本,但它修复的问题很实际:从 1.0 开始,扩展对象被安装到独立 schema 后,自动生成的卸载脚本不再总是可用;1.0.5 让卸载流程重新工作,并且支持扩展被安装在不同 schema 名称下的场景。 是一组面向 PostgreSQL...

PostgreSQL 正在补齐“时间维度”:从 WITHOUT OVERLAPS 到 FOR PORTION OF

来源: postgr.es 28
业务数据很少真的只有“当前值”。会员价格有生效区间,合同条款会换版本,房间预订不能重叠,员工岗位也可能按时间回溯查询。过去在 PostgreSQL 里做这些事,通常要靠 range 类型、排他约束、触发器和应用层约定拼起来。 PostgreSQL 18 开始把这类需求往 SQL 层收拢:引入 temporal keys,包括 和 。PostgreSQL...

Java 实时系统的事件驱动扩展:Kafka 背后的生产级取舍

来源: infoq.com 26
事件驱动架构很容易被描述成“天然可扩展”:生产者写事件,消费者水平扩容,Kafka 扛住吞吐。但在 Java 实时系统里,真正棘手的问题往往不是消息能不能进队列,而是状态放哪里、分区怎么切、重复事件如何处理、JVM 抖动会不会拖垮实时链路。 这篇文章基于一个 Java/Kafka 联络中心平台的经验展开:系统需要支撑约 80k BHCC(busy ho...

PostgreSQL 表太多时,内存和元数据查询会先撑不住

来源: postgr.es 28
“表很多”听起来像是建模风格问题,但在 PostgreSQL 里,它也可能变成实打实的内存和 CPU 问题。一次故障排查中,Linux OOM killer 会偶发杀掉 PostgreSQL,另一些长查询则持续占用 CPU、拖慢应用;最后问题都指向同一个根因:单个数据库里有成千上万张表以及随之膨胀的元数据对象。 排查 PostgreSQL 内存问题时,...

SQL:202y 新草案看点:QUALIFY、按列名插入与更安全的 JOIN

来源: postgr.es 21
2026 年 6 月,负责 SQL 与 GQL 标准化的 ISO/IEC JTC1 SC32 WG3 在斯德哥尔摩开会,多个与 SQL 和 PostgreSQL 社区密切相关的提案进入工作草案。这里的“已接受”还不是最终国际标准发布,而是进入标准工作草案,后续仍可能经过编辑、审查和投票流程。 这次最值得开发者关注的,不是某个炫技函数,而是几类会直接改变...

SQLAlchemy 2.1.0b3:ORM 加载更快,正式版前值得提前试跑

来源: oschina.net 39
SQLAlchemy 2.1 系列的第三个测试版已经发布。这个版本带来了一组新功能、性能改进和错误修复,并预计会成为 2.1.0 正式版发布前的最后一个测试版。对多数后端团队来说,最值得关注的是 ORM 加载路径的性能变化:ORM 加载器改用基于位置的访问,获取 ORM 结果行时可以以普通元组形式处理,绕开 Row 接口带来的额外开销。 SQLAlch...

PostgreSQL 的 enable_indexonlyscan:为什么“只扫索引”仍然会碰堆表

来源: postgr.es 22
在 PostgreSQL 里,索引不只有一种用法。普通 Index Scan 会沿着索引找到行,再回表读取堆表;Bitmap Scan 会先收集一批 TID,再批量访问堆表;Index Only Scan 看起来最诱人:如果查询需要的列都在索引里,理论上就不用碰堆表。 但 最容易被误解的地方也在这里:“物理上可以使用 Index Only Scan”不...