在 Docker 中运行 PostgreSQL
Docker 凭借轻量级隔离、快速部署和环境一致性的核心优势,已成为现代应用部署的标准基础设施。那么,容器化部署事务型 PostgreSQL 是否可取呢?
用 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 19: 支持 UPDATE/DELETE FOR PORTION OF 语法
PostgreSQL 已经开始支持时态数据部分更新与删除的能力,彻底填补应用时间维度区间数据操作的原生语法空白,大幅简化了范围型时态数据的修改逻辑。