标签
本文提供了对PostgreSQL在页面级别的VACUUM过程的逐字节分析,使用pageinspect展示死元组空间是如何被回收的。
这篇博文解释了为什么 PostgreSQL 数据库容易受到 OOM killer 的影响,以及使用严格的内存超分配如何能够防止灾难性宕机。文章还讨论了内核中的一个 bug 以及设置合适超分配限额的启发式方法。
PL/CBMBASIC 是一个 PostgreSQL 过程语言扩展,集成了原始的 Commodore 64 BASIC V2 解释器,允许用户编写带有行号的 BASIC 数据库函数。它用 C 语言模拟 6502 解释器,提供对 BASIC 命名约束的验证,并通过读取模拟变量表来支持 OUT 参数。
PostgreSQL 19 通过 io_uring 引入了内核异步读取功能,实现了直接的异步缓冲 I/O,从而在不使用专用工作进程的情况下提高性能。
本文讨论了数据库分区中的常见陷阱,特别是按日期列进行分区导致的错误,这会迫使查询必须包含日期过滤条件。文章建议改为按主键进行分区,并使用后台服务来管理分区边界,从而避免修改应用程序代码。
PostgreSQL 19 beta 引入了关键特性,如 REPACK CONCURRENTLY、分区拆分与合并以及增强的逻辑复制,为生产数据库管理提供了实用改进。
关于2026年6月在斯德哥尔摩举行的ISO/IEC WG3会议的报告,详细介绍了新SQL特性(如QUALIFY、INSERT BY NAME和SELECT list EXCLUDE)被接受纳入标准草案的情况,以及对PostgreSQL的影响。
一篇探讨PostgreSQL内部机制的技术文章,涵盖数据库集群、数据库、表、系统目录和对象标识符(OID)的逻辑与物理结构。
pg_plan_advice 是一个 PostgreSQL 模块,允许用户通过微型语言指定计划建议,以影响并稳定查询计划的选择。它有助于控制连接顺序、扫描方法及其他规划器决策,但若数据分布发生变化,覆盖规划器默认行为可能会适得其反。
Gjallarhorn是一个从头为Odin编程语言构建的Web框架,提供HTTP服务器、路由、中间件、模板引擎以及支持PostgreSQL的ORM,且无需任何外部依赖。
一份详细的技术指南,解释 PgBouncer 作为 PostgreSQL 连接池的工作原理,涵盖其连接池模式、生产部署及常见陷阱。
一份详细指南,介绍如何使用PostgreSQL作为单一数据库来处理金融应用的方方面面,包括模式设计、状态机、触发器和性能优化。
本文解释了 TimescaleDB 的 hypercore 引擎如何通过列式存储以及 delta 编码和 Gorilla XOR 等专门算法,为时间序列数据实现高达 98% 的压缩率,并将其与 PostgreSQL 的 TOAST 进行了对比。
本文对比了在大服务器上现代PostgreSQL(版本15-19)和MySQL 8.4的写入密集型sysbench性能,发现InnoDB通常在写入吞吐量方面优于PostgreSQL,且变化较小。
PostgreSQL 19 终于将引入原生的时态表支持,遵循 SQL:2011 标准,取代过去使用排除约束的手动方法。本文解释了当前方法的局限性以及新功能备受期待的优点。
PostgreSQL 文档介绍了属性图(Property Graphs),这是一种 SQL/PGQ 特性,允许使用图模式匹配语法查询关系数据,并将其定义为基于表的只读视图。
微软开源了pg_durable,这是一个PostgreSQL扩展,支持长时间运行的SQL函数的持久化执行,具有自动检查点和容错恢复功能。
PostgreSQL 19 通过新的 contrib 模块 pg_plan_advice 和 pg_stash_advice 引入了查询提示功能,结束了长期以来的社区争论,并为 DBA 提供了应对优化器边缘情况的应急方案。
本文认为,默认使用较弱的数据库隔离级别是一种过早优化,并推荐使用可序列化隔离级别,除非数据库管理系统已经默认使用该级别。文章引用了导致经济损失的并发bug的真实案例。