PostgreSQL 发展历史

John Doe 十月 13, 2025

PostgreSQL 社区保持了 30 年的持续发展,每年都会推出新的版本,包含新的特性。

image

背景与版本策略

  • PostgreSQL 源自于加州大学伯克利的 POSTGRES 项目,后来逐步演变为支持 SQL 的开源关系数据库系统。
  • PostgreSQL 社区自 2000 年代以来保持每年推出一个大版本(major version)的节奏。
  • 每个大版本以引入新功能为主,同时支持五年维护(包括安全修复与 bug 修正),在生命周期结束后停止支持。
  • PostgreSQL 网站有一个“Feature Matrix”(特性矩阵),可以看到各版本中新增的特性。

早期版本至 PostgreSQL 8.x 的关键里程碑

在 PostgreSQL 成为主流开源关系数据库之前,其早期版本便开始逐步引入关系型数据库必须的关键特性。

版本 时间 关键新增 / 特性
Postgres95 → PostgreSQL 1.x 到 6.x 1990 年代中期 最初以 POSTGRES 为基础,逐渐加入 SQL 支持。
6.0 1997-01-29 正式命名为 PostgreSQL;支持唯一索引、pg_dumpall 工具、ident 验证等。
6.1 / 6.2 1997 支持多列索引、序列 (sequence)、货币类型 (money)、触发器 (trigger)、JDBC 接口等。
6.3 / 6.4 / 6.5 1998–1999 支持子查询,PL/pgSQL 编程语言 (后期);引入 MVCC(多版本并发控制机制)与临时表、CASE / INTERSECT / EXCEPT 等 SQL 语义。
7.0 2000-05-08 引入外键、SQL-92 风格的 JOIN 语法支持。
7.1 2001-04-13 引入 WAL 预写日志、外连接 (outer join) 等功能。
7.2 ~ 7.4 2002–2003 添加 PL/Python、国际化 (i18n)、模式 (schema)、表函数 (table function)、prepared query 优化、存储结构优化、JOIN / SQL 优化等。
8.0 2005-01-19 引入原生 Windows 支持 (Windows 平台原生运行)、保存点 (savepoint)、表空间 (tablespace)、以及时间点恢复 (PITR) 支持。
8.3 2008-02-01 在这个版本中,PostgreSQL 引入多项性能优化(例如 HOT 机制减少 VACUUM 工作量),并加入全文搜索支持。

这些早期版本主要夯实数据库基本的事务、并发控制、SQL 兼容性、多语言扩展能力、恢复与备份机制等基础功能。

从 PostgreSQL 9.0 到 13 的演化

从 9.0 到 13,PostgreSQL 在性能、扩展性、并发控制、分区表 / 复制机制等方面都有显著增强。

以下列出若干代表性版本及其关键特性:

  • PostgreSQL 9.x

    • 引入热备读写分离、流复制、逻辑复制基础、并发增强等。
    • 在 9.4 中支持 JSONB 数据类型,提升 JSON 存储与查询性能。
    • 在复制、扩展机制 (如 FDW, foreign data wrapper) 上不断强化。
  • PostgreSQL 10(第一个两位主版本号):

    • 引入原生逻辑复制功能,更灵活的复制粒度。
    • 提供分区表支持,改进并行查询的能力。
  • PostgreSQL 11 / 12

    • 优化并行化执行 (更大范围支持并行化),改进索引和查询优化器。
    • 增加更多分区表功能(如默认分区、分区索引等)。
    • 在 12 版本中引入生成列支持、更多增强的并行与可扩展性特性。
  • PostgreSQL 13

    • 引入增量排序、更多优化器改进、部分索引的更强能力、扩展的 B-tree 支持等。
    • 继续加强分区表与并行查询支持。

在这个阶段,PostgreSQL 逐步从一个优秀的关系数据库,向高性能、大数据量、并发与扩展性强的系统演进。

PostgreSQL 14 到 18 的演进重点

下面是近几个版本的主要新特性和趋势:

版本 发布年份 / 时间点 主要新增 / 重大发展方向
14 2021-09-30 - 存储过程支持 OUT 参数。
- SQL 标准的 SEARCH / CYCLE 选项用于递归 CTE(公共表表达式)。
- 更广泛的下标运算符支持(如对 jsonb、hstore 数据类型)。
- 扩展统计信息可针对表达式采集统计信息以改善查询计划。
- libpq 支持管道化查询(在高延迟连接上提高吞吐)。
15 2022-10-10 在特定版本中持续完善性能、安全性、并行化等方面的增强。(各小版本主要为修复与微调)
16 2023-09-11 与之前版本对比,其扩展了一些现代硬件支持、更好的并发控制、优化、监控可视化增强等。
17 2024-09-26 - 引入新的 VACUUM 内存管理机制,以减少 VACUUM 操作的内存消耗并提升整体性能。
- 在 SQL/JSON 相关功能上增强(包含 JSON 构造函数、身份函数 (identity function)、JSON_TABLE() 支持,将 JSON 转为表格视图)。
- 各种查询性能优化:如顺序读取的流式 I/O 支持、在高并发下写入吞吐优化、改进 B-tree 索引在多值搜索上的效率。
- 逻辑复制增强:如故障切换控制、新增pg_createsubscriber工具(可从物理备用节点创建设备逻辑复制节点)等。
18 2025-09-25 通过异步 I/O、Skip Scan 等底层优化夯实性能基石,用时态约束、统计信息保留简化企业级管理,借虚拟生成列、UUIDv7 等特性降低开发门槛。

从这些版本演进可以看出几个趋势:

  1. 性能持续优化:包括 IO、并行化、索引访问、排序 / 排序优化、内存管理调优等。
  2. 增强 JSON / 非关系数据类型支持:使得 PostgreSQL 在“混合结构 / 半结构化数据处理”上更加有竞争力。
  3. 复制与容灾 / 可用性:逻辑复制、故障切换、复制拓扑更灵活、更可靠。
  4. 扩展性 / 插件机制强化:外部数据包装器 (FDW)、扩展模块、语言扩展、统计 / 监控扩展日益完善。
  5. 工具化与可用性改善:更便捷的升级路径、运维可视性增强、连接库 (libpq) 与接口的改进、调试与监控能力增强等。

总结与展望

  • PostgreSQL 的发展历程体现了从基础关系型数据库功能(事务、并发控制、SQL 支持)逐步向高性能、高并发、可扩展、混合数据类型支持、复制 / 容灾 / 可用性、以及现代数据场景(如 JSON、分布式访问、插件扩展等)演进。
  • 在最近几个版本中,更强调性能调优、复制/容灾能力、对 JSON / 非结构化数据的支持、以及更灵活的扩展机制。
  • 未来 PostgreSQL 18 及之后版本预计在性能、安全性、现代语言 / 类型支持、异构数据访问、云 / 分布式场景下的能力上继续增强。

参考

PostgreSQL Feature Matrix:https://www.postgresql.org/about/featurematrix/

维基百科:https://en.wikipedia.org/wiki/PostgreSQL