PostgreSQL 正式杀入图数据库腹地:SQL/PGQ 提交入主干,忘掉图插件吧,PG直接掀桌子了。
2026 年 3 月 16 日,PostgreSQL 提交了一个足以写进里程碑的 patch:
2f094e7ac691abc9d2fe0f4dcf0feac4a6ce1d9c
标题是:SQL Property Graph Queries (SQL/PGQ)
这不是“小功能”。 这是 PostgreSQL 对 SQL:2023 第 16 部分 ISO/IEC 9075-16:2023 的一次正面接招。commit 直接引入了:
GRAPH_TABLE 图模式匹配表函数CREATE/ALTER/DROP PROPERTY GRAPHpsql \dGpg_get_propgraphdef()更关键的是 commit message 明确写了一句最值钱的话:
property graph 在 PostgreSQL 里是一种新的 relkind,但它“在很多方面像 view”,并且会在 rewriter 阶段改写成标准 relational query。
这句话,决定了这件事的技术意义,也决定了这篇文章的核心观点:
PostgreSQL 这次不是要变成“另一个图数据库”,而是要把图查询重新收编进 SQL 体系。 一旦这条路走通,受冲击最大的,未必是图数据库本身,而是企业里那些“为了图而图、为了产品边界而拆库”的架构习惯。
很多人第一反应会是:
“PostgreSQL 也支持图了?那是不是要和原生图数据库正面打?”
这问题问偏了。
从 commit 自己的设计就能看出来,PostgreSQL 这次的路线不是:
它选的是另一条路线:
用 SQL 标准定义图语义,用 property graph 做逻辑抽象,再把查询重写回关系代数。
说白了就是:
PostgreSQL 不想让“图”成为一个需要另起炉灶的数据孤岛,而想让它成为关系数据库的一种高级查询视角。
这和很多图库产品的思路完全不同。 它不是在喊“我也有图能力了”, 而是在说:
图查询,不一定要靠一个独立数据库品类来完成。
这比“多一个功能”要凶得多。
因为它同时改变了三类人的判断边界。
过去你说“业务想做图分析”,常见动作是什么?
也就是说,一个查询需求,换来一套系统级负担。
而 SQL/PGQ 的方向恰恰相反: 它把图能力尽量留在 PostgreSQL 现有的事务、权限、备份、恢复、监控、工具链里。
这意味着 DBA 最该关注的,不是“语法会不会写”,而是:
如果图查询可以在 PostgreSQL 内部完成,那企业是否还需要为中等复杂度图场景付出第二套数据库的全部运维成本?
真正的架构问题,从来不是“图数据库酷不酷”,而是:
这个需求值不值得我为它引入一个新系统边界。
如果 PostgreSQL 现在开始提供标准化的图查询入口,那么很多原本依赖“专用图引擎”的场景,就要重新做 TCO 计算:
这才是架构师真正该问的问题。
更现实一点:
过去很多团队做“社交关系”“推荐链路”“风控关联”“主数据血缘”,最后最痛苦的不是图算法, 而是数据怎么从事务库搬到图库、两边语义怎么对齐、权限怎么统一、调试怎么闭环。
如果 SQL/PGQ 真正进入 PostgreSQL 主干,那开发者会得到一个非常诱人的选项:
在熟悉的 SQL 世界里,直接写图模式匹配,而不是把数据搬去另一个方言宇宙。
GRAPH_TABLE很多文章写这种 commit,容易只抓一个新语法。 但这次 patch 真正说明“不是玩票”的,恰恰是它加的不只是一条语句,而是一整套对象体系。
从 commit message 看,这次加的是:
GRAPH_TABLE:图模式匹配的表函数CREATE/ALTER/DROP PROPERTY GRAPH:图定义 DDLpsql \dGpg_get_propgraphdef():供 pg_dump 和 psql 使用这意味着 PostgreSQL 不是只加了一个 parser 层玩具, 而是认真把 property graph 当成了可定义、可 introspect、可 dump、可管理的数据库对象。
这点很关键。
因为数据库功能能不能进生产,很多时候不是看“能不能跑”,而是看:
这次 patch 把这些配套一起带上,说明它的目标不是 demo,而是主干能力。
这里是最值得掰开的地方。
commit message 明确说:
relkindsecurity invoker viewsecurity definer 变体暂未实现这意味着 PostgreSQL 的战略不是“造一个图库内核”,而是:
把图看作一种可声明的数据语义层,然后复用现有关系执行体系。
这件事背后的第一性原理是什么?
绝大多数企业核心数据,天然就是表:
所谓“图”,很多时候不是另一份数据,而是同一份关系数据的另一种观察方式。 节点是实体,边是关系,属性还是列。
如果图只是语义层,那么最合理的做法,往往不是复制一份物理存储, 而是在原始关系数据之上提供图查询表达能力。
每多一个数据库系统,你增加的不是一个产品 logo,而是一整套现实成本:
所以如果 80% 的图需求,其实可以在关系世界内部解决, 那单独引入图数据库,本质上就是在为剩余 20% 的极端能力支付 100% 的系统复杂度。
这正是 SQL/PGQ 最有杀伤力的地方。
观点必须锋利,也必须克制。
如果有人看到这个 commit,就开始喊:
“以后别用图数据库了,PostgreSQL 全包了。”
那这个判断明显过头。
为什么?因为它现在的路线本质上还是:
图语义 + 关系改写。
这条路线的优势很明显:
但它也有天然代价:
这意味着复杂图模式匹配、多跳遍历、深层路径扩展,最后仍然要接受关系优化器和关系执行器的约束。
它未必不能做, 但不能天真地以为它会自动拥有专用图库那种“按图而生”的物理执行优势。
语法层的 MATCH 很漂亮,
但底层是否能稳定地产生高质量 plan,是另一件事。
尤其图模式常常会引出:
如果这些问题处理不好, 那“能写图查询”和“能高效跑图查询”,中间隔着完整一代优化器工作。
这个时间点必须说清楚。
截至 2026 年 3 月 18 日,PostgreSQL 官方当前稳定文档仍然是 18 系列;这次 SQL/PGQ commit 发生在 2026 年 3 月 16 日 的开发分支上。 结合 CommitFest 页面显示其目标周期为 PG19-Final,这更像是面向未来大版本的主干能力,而不是今天生产环境里已经普及的现成选项。
所以正确表述应该是:
PostgreSQL 已经在主干方向上正式接纳 SQL/PGQ,但企业是否立刻上生产,还要看后续版本打磨、优化器成熟度和生态配套。
图数据库真正稳固的护城河,从来不是“能表达图”,而是两件事:
但现实里,企业大量所谓“图需求”其实处于中间地带:
这类场景,才是 SQL/PGQ 最危险的猎物。
也就是说,PostgreSQL 不一定会先吃掉那些最 hardcore 的图库场景, 它更可能先吃掉的是:
原本因为“没有标准图查询入口”,才被迫外溢出去的那部分业务。
这和当年很多 JSON workload 回流关系数据库,是同一种历史逻辑。
如果你满足以下前提,SQL/PGQ 很值得认真评估:
在这些前提下,SQL/PGQ 的价值不是“能省点开发时间”, 而是可能直接减少一整套系统边界。
如果你的场景是:
那你就别因为一个标准语法就误判形势。
这时候更合理的观点是:
SQL/PGQ 会提升 PostgreSQL 的图表达能力,但未必替代原生图引擎在极端图场景中的优势。
一旦这个前提成立,架构判断就不该是“要不要全换”, 而是“哪些图场景回归 PostgreSQL,哪些保留专用引擎”。
这次还有一个常被低估的信号: 这不是某个厂商自造语法,而是SQL:2023 标准里的 SQL/PGQ。
这意味着什么?
意味着 PostgreSQL 这次不是在做“专有图扩展”, 而是在抢一个更高层的叙事权:
把图查询纳入标准 SQL 版图。
标准化的意义远不只是“文档更好看”,而是:
一句话:
一旦图查询被标准 SQL 收编,它就更像“数据库通用能力”,而不再只是“某类专用产品卖点”。
这才是这件事最深层的产业含义。
从 CommitFest 页面看,这个 patch 集规模达到 +15,263/-216 行,状态在 2026 年 3 月 10 日 已到 Ready for Committer;
而 2026 年 1 月的评审邮件还给出过一组很有代表性的质量信号:约 180 个测试用例、90.5% 行覆盖率。
这组数字不能证明“功能已经完美”,但至少说明两件事:
对于一个全新对象类型和新查询范式来说,这种工程投入本身就是重要信号。
最后给一个明确判断。
SQL/PGQ 进入 PostgreSQL 主干,短期内最先改变的,不会是图数据库教科书,而是企业技术选型的默认答案。
过去很多项目一提“关系网络、路径查询、主数据关联、供应链关联、风控团伙、血缘分析”, 默认动作就是:
“是不是该上个图库?”
而未来更可能变成:
“先看这事能不能在 PostgreSQL 里用 SQL/PGQ 解掉,再决定要不要多一套系统。”
这就是决定性的变化。
它不一定会立刻终结图数据库。 但它很可能先终结大量其实没必要上独立图库的项目。
这比“替代谁”更现实,也更重要。
这次 SQL Property Graph Queries (SQL/PGQ) 提交,真正值得记住的不是 GRAPH_TABLE 这几个字,
而是它背后的路线:
PostgreSQL 正在尝试把“图”从独立数据库品类,重新拉回 SQL 标准和关系系统主场。
如果这条路成熟,最先被改写的将是三件事:
但同时也要清醒:
SQL/PGQ 扩大的是 PostgreSQL 的图能力边界,不等于它自动获得原生图引擎在所有极端场景下的物理优势。
所以最成熟的态度不是站队, 而是重新做一遍架构分层:
这才是这次 commit 真正逼你回答的问题。
你怎么看
如果 PostgreSQL 在未来版本里把 SQL/PGQ 打磨成熟,你们团队会把哪些图场景收回 PostgreSQL,哪些仍留给专用图库? 你更看重“统一数据平台、统一运维”,还是“专用图引擎的极致能力”? 评论区聊聊:SQL/PGQ 进 PostgreSQL,究竟是在补齐短板,还是在重画数据库边界?