中间件速查手册
图数据库关系

Relationship 是什么?

连接两个节点的有向边,也能带属性

类比:两人之间的「同事」关系,可以带入职时间

它是什么

关系必须有方向(:A-[:KNOWS]->:B)和类型,两端各有一个节点。关系在存储层是双向指针,所以反方向遍历同样快。

关系也可以有属性,比如 [:RATED {score: 5}]、[:WORKED_AT {from: 2020, to: 2023}]。

为什么比 JOIN 快

关系库的 JOIN 是查询时用索引临时匹配;图库在写入时就把关系存成了物理指针,遍历一跳就是一次指针跳转,代价与全表规模无关。

注意

超级节点(一个节点有几百万条边,如大 V)会让遍历变慢,需要按类型拆分或做预处理。关系不能悬空,删除节点会连带删除它的关系。

它出现在这些中间件里

相关概念