在过去十多年里,PostgreSQL一直以“最像Oracle的开源数据库”著称,稳、可靠、功能全,是Web应用后端、金融系统、ERP系统的常客。它不像MySQL那样轻快,也不像MongoDB那样灵活,但它就像一位穿着西装、戴着眼镜的中年工程师,话不多,干活稳。
可就在今年年7月,Stack Overflow 的调查显示给了所有人一个信号:PostgreSQL的使用率达到了58%,远超MySQL的40%和SQL Server的30%。更惊人的是,这个数字比去年还涨了6个百分点。
这意味着,在全球超过百万的专业开发者中,超过一半的人每天都在和PostgreSQL打交道。它不再是一个小众选择,而是事实上的开源数据库王者。
但问题也来了——用得多,不代表全能,长期以来,PostgreSQL在分析场景中的表现一直被诟病:复杂查询慢、多表关联卡顿、大规模扫描效率低,这些问题在数据量上来之后尤为明显。
很多公司宁愿用ClickHouse、Doris或者Snowflake来做分析,也不愿在PostgreSQL里硬扛;直到现在,PostgreSQL 18的发布,可能要改写这个游戏规则。
这次版本的核心人物之一是沙伊德·乌迈尔,他是Stormatics的创始人,也曾是Percona公司负责PostgreSQL业务的前负责人。如果你在数据库圈混过,应该知道Percona是谁——这家开源数据库咨询公司服务过无数大型企业,从电商到银行,从游戏到电信,乌迈尔不是那种只写代码的技术宅,他更像一个“数据库布道者”,常年奔走在客户现场,听一线开发者的抱怨,也看架构师的蓝图,他知道PostgreSQL缺什么,也知道它能往哪儿走。
据他透露,PostgreSQL 18最大的技术突破,是引入了全新的异步I/O子系统。
听起来很技术,但你可以这样理解:以前数据库从硬盘读数据,就像一个人去图书馆借书,每次只能拿一张借阅单,等管理员把书找来,才能继续下一步。如果书在地下室,来回一趟要十分钟,那这个人就只能干等。
而现在,异步I/O相当于这个人可以一次性提交十张借阅单,然后一边等书一边干别的事,哪本书先到就先看哪本。CPU不再被I/O拖着走,效率自然翻倍。
这对分析型查询尤其重要。
你想啊,一个报表要查五张表,每张表几千万行,还得做多层聚合和连接,以前这种查询动不动就几十秒甚至几分钟,现在在SSD硬盘上测试,性能提升了两到三倍。
这不是小修小补,是质的飞跃。乌迈尔说,这个功能专为现代硬件设计,尤其是固态硬盘和高速存储阵列,普通机械盘可能吃不透这波红利,但今天的主流云服务器和企业存储,基本都跑在SSD之上。
当然,性能提升不是无代价的。开发者需要根据硬件资源调整并发度,避免CPU和内存被耗尽。但这恰恰说明PostgreSQL越来越“成熟”了——它不再是一个开箱即用的玩具,而是一个需要调优、值得深挖的生产级系统。
另一个容易被忽略但意义深远的变化,是UUID的升级。
从UUID版本4到版本7,听着像是个小版本号迭代,实则不然,老版本的UUID是纯随机的,虽然唯一性有保障,但在数据库索引里就像一盘散沙,插入和查询都慢,而UUID v7加入了时间戳元素,生成的ID天然有序,相当于给每条记录打上“出生时间戳”。
这意味着,在分布式环境下,多个节点生成的ID不会冲突,还能按时间排序,几乎等同于实现了全局自增序列。
这个改动,直接为PostgreSQL走向分布式铺了路:分布式数据库最难的不是存储,而是如何在多个节点之间协调数据顺序和一致性,现在有了有序UUID,跨节点插入、分片排序、时间窗口查询都变得可行。
乌迈尔说得直白:这一步让原生PostgreSQL离真正的多活分布式架构,只差临门一脚。
事实上,已经有不少创业公司盯上了这块蛋糕:
比如CockroachDB和YugabyteDB,它们都用PostgreSQL的协议做前端,让用户感觉像是在用PostgreSQL,背后却是完全分布式的存储引擎。
PlanetScale则另辟蹊径,基于MySQL做了类似的事,但他们最近也开始研究PostgreSQL的兼容层。
而pgEdge更狠,直接承诺让用户在全球多个数据中心部署主节点,实现真正意义上的多活。
但PostgreSQL社区并没有被这些商业公司牵着鼻子走。它选择在核心引擎里埋下种子,让未来原生支持分布式成为可能。这种“稳扎稳打”的风格,正是PostgreSQL过去二十年成功的秘诀——不追风口,但一旦出手,就是杀招。
不过,也有遗憾。比如双时态查询(bitemporal queries)和属性图查询(Property Graph Queries)这次就没赶上发布。
前者能让数据库同时追踪“数据发生的时间”和“数据被记录的时间”,在金融审计、合规追溯场景中极为重要;
后者则是图数据库的核心能力,能让SQL直接操作节点和边。
Percona的技术布道者特纳·阿拉斯泰尔一年前还信心满满地说这些功能进展顺利,结果最终因提交者不足而延期。社区的力量虽强,但也受限于志愿者的时间和精力。
这恰恰反映了开源项目的现实:伟大不是一蹴而就的,它由无数个深夜的代码提交、邮件讨论和测试用例堆砌而成。PostgreSQL 18不是终点,而是一个转折点——它标志着这个老牌数据库正在从“事务之王”向“分析与分布并重”的全能选手转型。