网易首页 > 网易号 > 正文 申请入驻

PostgreSQL 19新增图查询能力,实测对标Neo4j关系库干掉图数据库

0
分享至




一、昂贵的图数据库痛点:只跑4条查询,成本却居高不下

很多技术团队都遇到过这样的困境:花重金搭建Neo4j集群,业务上真正用到的查询语句只有4条,全部都是查询人与人之间关联关系。这套集群每个月的开销很高,但仅仅支撑少量的关联遍历逻辑,资源严重浪费。

当PostgreSQL 19 Beta2版本发布,内置SQL/PGQ属性图查询标准之后,这名工程师做了一次大胆的实测。他把生产环境数据拷贝到测试服务器,直接用Postgres接管原本Neo4j承载的关系遍历任务。原本他预想,测试结果一定会证明专用图数据库依旧不可替代,但是实测数据完全推翻了他的预判。

PostgreSQL是开源免费的关系型数据库,官方镜像仓库在GitHub拥有22.2k星标。SQL/PGQ是SQL:2023标准里的属性图查询规范,由Peter Eisentraut在3月份提交代码合并进内核。它不需要新增独立的图存储引擎,也不用额外复制一份数据,仅仅是在现有业务表之上增加一层图元数据定义,逻辑上和视图十分接近。不需要迁移原有业务数据,原有索引、MVCC多版本、行级权限、备份机制全部保留,这也是这项新特性最大的亮点。

这个特性直击开发者痛点:不想维护两套数据库,不想为少量图查询承担图数据库高额运维成本;同时满足大家的痒点,只用一套Postgres,就能写出类似Cypher风格的图匹配语句;最终带来爽点:部分场景下性能超越Neo4j,省去额外图数据库的部署、运维开支。

二、核心原理与实操代码:不用迁移数据,直接定义图结构图模型定义

开发者只需要执行一段DDL语句,基于现有的用户表、关注关系表,声明顶点表和边表,完成属性图的创建。

CREATE PROPERTY GRAPH socialVERTEX TABLES (users KEY (id) LABEL person PROPERTIES (id, name)EDGE TABLES (follows KEY (id)SOURCE KEY (src) REFERENCES users (id)DESTINATION KEY (dst) REFERENCES users (id)LABEL knows
图查询语句

定义完成之后,可以使用GRAPH_TABLE语法,编写和Cypher风格高度相似的关联匹配查询。

SELECT * FROM GRAPH_TABLE (socialMATCH (a IS person WHERE a.id = 42)-[IS knows]->(b IS person)COLUMNS (b.id, b.name)
底层转换逻辑

GRAPH_TABLE本质是查询重写器。我们写好的箭头匹配语法,会在进入优化器之前,自动转换成普通多表JOIN。

  • 开发者编写:MATCH (a)-[k]->(b)
  • 数据库实际执行:users表a关联follows边表k,再关联users表b 单跳关系会转为三表连接,两跳转为五表连接,三跳转为七表连接。查询优化器会自动选择连接顺序,复用Postgres原有的统计信息、索引能力和执行计划。
实测环境与性能数据

测试机器配置:16核CPU,64G内存,本地NVMe固态。数据为脱敏生产数据,包含410万用户,3800万条关注边记录。 Postgres19 Beta2参数:shared_buffers 16GB,work_mem 128MB,effective_cache_size 48GB。 Neo4j 5参数:堆内存16GB,pagecache 24GB。 两个数据库都预热完成,每组查询取500次运行的中位数,客户端和数据库部署在同一台主机,排除网络干扰。

查询场景

Neo4j耗时

Postgres19耗时

优胜方

根据ID单跳关联

1.8毫秒

1.1毫秒

Postgres

两跳关联去重

14毫秒

9毫秒

Postgres

两跳关联过滤计数

22毫秒

12毫秒

Postgres

三跳关联去重

61毫秒

148毫秒

Neo4j

两跳场景下Postgres执行计划全部命中索引,没有磁盘读取,性能表现十分亮眼。

三、辩证思考:优势很明显,但存在无法忽视的短板

从好的一面来看,SQL/PGQ的优势足够吸引人。团队不需要额外学习一套全新数据库,原有DBA、运维体系可以直接复用。不用同步维护两套数据,避免数据同步带来的一致性问题。简单的一跳、两跳关联查询,Postgres性能反而超过Neo4j,对于大量轻量图查询场景,完全可以替换掉昂贵的图数据库。

但这次测试也暴露了很关键的问题,工程师踩过一个典型的索引陷阱。在做反向遍历查询的时候,第一次执行耗时达到340毫秒,排查执行计划发现,数据库对3800万条边做全表扫描。原因很简单:Neo4j原生支持双向遍历,不需要额外建立反向索引,长期掩盖了表结构设计缺陷。给follows表dst字段新建索引之后,同样的查询耗时直接降到6毫秒。也就是说,使用Postgres做图查询,开发者必须自己考虑双向遍历对应的索引,不会像专用图数据库那样自动兜底。

更大的局限在于,PostgreSQL 19的SQL/PGQ还不支持可变长度路径匹配,没有最短路径能力,也不支持多模式MATCH。如果需要写1到4层可变深度的关联查询,GRAPH_TABLE语法无法实现。只能退回到传统递归CTE写法。

WITH RECURSIVE walk AS (SELECT dst AS id, 1 AS d FROM follows WHERE src = 42UNIONSELECT f.dst, w.d + 1FROM walk w JOIN follows f ON f.src = w.idWHERE w.d < 4SELECT DISTINCT u.nameFROM walk w JOIN users u ON u.id = w.id;

递归CTE最终耗时96毫秒,和Neo4j差距不大,但代码可读性很差,这也是图数据库诞生的核心原因。

综合来看,它不是图数据库的终结者。浅层次固定深度的关系查询,Postgres19可以胜任,降低架构成本;一旦涉及多层可变深度路径、复杂图算法场景,专用图数据库依旧有不可替代的优势。

四、现实意义:技术选型的思路变化

过去,只要业务存在少量关系遍历需求,很多团队第一反应就是引入Neo4j,单独搭建一套图数据库集群,增加架构复杂度、运维工作量和资金成本。PostgreSQL19带来的SQL/PGQ,给技术团队提供了全新选型方案。

对于大多数业务,关联查询深度固定、层数不多,完全可以继续沿用现有的Postgres,不用新增数据库组件。系统架构更简单,数据一致性更容易保障,运维成本大幅下降。

但技术人员不能盲目乐观直接替换。迁移之前,必须梳理清楚图查询的深度、访问模式,评估索引设计成本。如果业务大量使用不定长路径、复杂图挖掘算法,贸然替换,会带来严重性能隐患。

这项特性最大价值,不是消灭图数据库,而是补齐关系型数据库在关联遍历场景的短板,让技术选型不再非黑即白。团队可以根据业务复杂度,灵活选择架构方案,而不是一刀切引入新数据库。

五、互动话题

1、你的项目里有没有引入Neo4j这类图数据库?实际业务中,真正高频使用的图查询多吗? 2、如果项目只是固定1-2层的关联查询,你会考虑用PostgreSQL19的SQL/PGQ,替代掉独立图数据库吗? 3、你觉得未来几年,图数据库市场会不会因为Postgres内置图查询,受到明显冲击?欢迎在评论区交流你的看法。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
猛然发现,现今没人提固态电池了?后路都让抄了,大饼画不下去了

猛然发现,现今没人提固态电池了?后路都让抄了,大饼画不下去了

一路荒凉如歌a
2026-09-29 16:03:49
发现中国一个奇怪的现象:只要有公婆帮扶的家庭,儿媳都忙着回公婆家;而公婆不帮的家庭,儿媳早已断联!

发现中国一个奇怪的现象:只要有公婆帮扶的家庭,儿媳都忙着回公婆家;而公婆不帮的家庭,儿媳早已断联!

心理观察局
2026-08-01 07:10:30
看完国足1-2韩国,认清4个不争事实!徐彬留洋半年,为何看不到进步

看完国足1-2韩国,认清4个不争事实!徐彬留洋半年,为何看不到进步

老牛体育解说
2026-09-30 17:54:40
金球级表演!19岁亚马尔独舞:左脚2球 右脚助攻 4万人致敬

金球级表演!19岁亚马尔独舞:左脚2球 右脚助攻 4万人致敬

叶青足球世界
2026-09-30 08:34:45
为什么解放军要复刻本·拉登藏身处当训练场

为什么解放军要复刻本·拉登藏身处当训练场

小眼睛小世界
2026-09-30 04:27:34
向太说1999年马云来她家,聊了一晚上互联网,从头到尾没开口要钱

向太说1999年马云来她家,聊了一晚上互联网,从头到尾没开口要钱

荆楚寰宇文枢
2026-09-28 22:14:46
河南裕隆金属材料有限公司原董事长陈庆云接受审查调查

河南裕隆金属材料有限公司原董事长陈庆云接受审查调查

界面新闻
2026-09-30 08:38:12
这次亚运会,有一群特殊的中国人,引起全世界关注!

这次亚运会,有一群特殊的中国人,引起全世界关注!

斐君观点
2026-09-30 08:08:52
网友呼唤樊振东回归国乒!邓亚萍:很欣赏他 得看他和乒协怎么讨论

网友呼唤樊振东回归国乒!邓亚萍:很欣赏他 得看他和乒协怎么讨论

念洲
2026-09-30 10:04:18
今晚开播!34集悬疑剧《余红旧事》来袭,马伊琍增重10斤演老板娘,4桩命案全员狠人,这阵容不火没天理

今晚开播!34集悬疑剧《余红旧事》来袭,马伊琍增重10斤演老板娘,4桩命案全员狠人,这阵容不火没天理

小邵说剧
2026-09-30 07:54:06
陪睡陪玩只是开胃菜,舔手指塞拳头、集体嫖娼、背后的事藏不住了

陪睡陪玩只是开胃菜,舔手指塞拳头、集体嫖娼、背后的事藏不住了

北海史记
2026-08-12 19:57:54
武统可能随时到来?美上将:跟解放军谈不了,8倍核武库随时介入

武统可能随时到来?美上将:跟解放军谈不了,8倍核武库随时介入

探史
2026-09-28 16:17:07
安洗莹:下一目标追赶林丹!40连胜+赛季胜率98%,102周世界第一

安洗莹:下一目标追赶林丹!40连胜+赛季胜率98%,102周世界第一

排球黄金眼
2026-09-30 11:15:08
北京协和医学院博士:逼死一个人最快的方式,凡事往坏处想

北京协和医学院博士:逼死一个人最快的方式,凡事往坏处想

洞见
2026-09-22 10:20:09
英国外交大臣:绝不会让以色列政府得逞

英国外交大臣:绝不会让以色列政府得逞

澎湃新闻
2026-09-29 22:09:30
太坑了!女子家中漏水,维修工灌了50多斤胶水报价9000多,4天后又漏了

太坑了!女子家中漏水,维修工灌了50多斤胶水报价9000多,4天后又漏了

上观新闻
2026-09-30 14:15:02
美方在台湾问题上有了新说辞:若中国和平统一,美国不会反对

美方在台湾问题上有了新说辞:若中国和平统一,美国不会反对

吕醿极限手工
2026-08-27 14:18:48
大势已去?也门政府军24小时356次强攻大胜,胡塞476人伤亡

大势已去?也门政府军24小时356次强攻大胜,胡塞476人伤亡

午夜搭车a
2026-09-30 05:15:54
太抽象了!小马云、烤斯克、黄银勋“梦幻联动”整活,流量的尽头终究是直播带货!

太抽象了!小马云、烤斯克、黄银勋“梦幻联动”整活,流量的尽头终究是直播带货!

唐大业
2026-09-29 16:18:46
俄强硬派大佬绝望预警:普京之后,俄罗斯难逃1917式崩盘

俄强硬派大佬绝望预警:普京之后,俄罗斯难逃1917式崩盘

老马拉车莫少装
2026-09-21 23:08:56
2026-09-30 19:15:00
呼呼历史论
呼呼历史论
分享有趣的历史
850文章数 18306关注度
往期回顾 全部

科技要闻

OpenAI凌晨大上新!新助手dots迎战Muse

头条要闻

72岁阿婆满心欢喜出境游 递上护照后边检警察愣住了

头条要闻

72岁阿婆满心欢喜出境游 递上护照后边检警察愣住了

体育要闻

30天30队·火箭:乌度卡的控制欲

娱乐要闻

胡歌现身游本昌遗体告别仪式

财经要闻

“杭州六小龙”迎来价值重估

汽车要闻

燃油车的最佳平替 长城大狗HEV简单好开更经济

态度原创

亲子
艺术
时尚
本地
公开课

亲子要闻

专家提醒:别随便表扬孩子,总被表扬的孩子 更容易害怕失败比起表扬 更重要的是鼓励

艺术要闻

一位被忽略的晚明禅僧书家,意趣直追兰亭,启功称五百年来无此君!

网红超长蛋挞,炸出一堆“人上人”

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版