John Doe

用 ulimit 限制 PostgreSQL 内存:避免 OOM 杀库灾难

你有没有被 PostgreSQL 的 OOM 折磨过?数据库强制重启,所有连接全断。排查半天,发现罪魁祸首只是一个跑飞了的复杂查询,或者一个写崩了的存储过程。

继续阅读

PostgreSQL 写入风暴问题:来源、检测与解决

生产环境里最让人头疼的,莫过于那种毫无征兆的性能雪崩:前一秒 TPS 还稳稳跑在 2000+,下一秒直接腰斩;应用延迟突然飙升,请求排队堵成山;排查半天 CPU、内存都正常,最后发现磁盘 IO 被打满了。

继续阅读

PostgreSQL 19: 提供查询计划干预扩展 pg_stash_advice

PostgreSQL 新增了 pg_stash_advice 扩展模块,实现了基于查询 ID 的执行计划建议自动应用能力。无需修改应用代码、无需重启服务,即可为任意查询永久绑定最优执行计划,彻底解决了统计信息波动、规划器误判导致的慢查询回退难题。

继续阅读

PostgreSQL 19: 在线启用与禁用数据校验和

之前,PostgreSQL 数据校验和只能在初始化或停机状态下进行配置。而现在,新版本实现了运行中实例在线启用 / 禁用数据校验和的能力,让 7×24 小时运行的核心业务实例也能零停机获得数据完整性保护。

继续阅读

PostgreSQL 19: REPACK 命令支持 CONCURRENTLY 选项

PostgreSQL 原生REPACK命令新增 CONCURRENTLY(并发执行)选项,实现了业务表几乎无感知的 7x24 小时在线重组。

继续阅读

PostgreSQL 19: 新增 pg_get_role_ddl () 函数

MySQL 用户经常会使用 SHOW CREATE USER 语句,显示用于创建指定用户的 CREATE USER 语句。现在 PostgreSQL 也有了原生的 SQL 函数,一行命令即可生成角色完整重建的 DDL。

继续阅读

PostgreSQL 事务吞吐量高带来的数据冻结

摘要:在本文中,我们将了解 PostgreSQL 事务 ID 快速分配带来的数据冻结问题,以及相关的解决方案。

继续阅读

PostgreSQL 19: 支持 UPDATE/DELETE FOR PORTION OF 语法

PostgreSQL 已经开始支持时态数据部分更新与删除的能力,彻底填补应用时间维度区间数据操作的原生语法空白,大幅简化了范围型时态数据的修改逻辑。

继续阅读

PostgreSQL 存储过程异常逻辑的性能影响

摘要:开发者经常会在存储过程中使用异常处理,尤其是从其他数据库迁移到 PostgreSQL 时,但是不同数据库的行为差异很大。

继续阅读

插入违反约束产生的 VACUUM 开销

摘要:在本文中,我们将了解插入 PostgreSQL 表违反约束时产生的 VACUUM 开销,以及相关的解决方案。

继续阅读