为什么 Native Projection 在 Neo4j GDS 库中的性能优于 Cypher Projection?

问题描述 投票:0回答:1

文档 在目录中创建图形声称使用 Native Projection 优于 Cypher Projection 时具有这种性能优势,但没有给出太多解释。

原生投影
提供最佳性能...

密码投影
更灵活、更具表现力的方法,较少关注性能。

据我了解,所有预测都会结束:

使用针对拓扑和属性查找操作优化的压缩数据结构将图形投影完全存储在内存中。

那么为什么性能会提升呢?

此外,假设获得的性能用于加载(具体化)投影图或稍后进行处理,例如使用 PageRank 算法?

neo4j cypher graph-theory
1个回答
2
投票

你是对的,所有投影最终都完全存储在内存中。密码投影和本机投影之间的区别在于我们存储或具体化投影图的速度。据我所知,原生投影使用内部 Neo4j API,这使得加载图更快,但仅限于指定节点标签和关系类型。而Cypher投影则支持Cypher的所有特性,可以非常灵活地用来过滤我们想要投影的子图。我们还可以投影一个虚拟图。虚拟图的一种非常常见的投影是仅使用密码投影将二分图投影为单分图。您必须意识到,您的密码查询越复杂,图形投影就越慢。即使仅投影单个节点标签和关系类型,使用密码投影也会比使用本机投影慢。但我不会太担心,直到你的图变得超过数十百万个节点和关系

一旦图在内存中具体化,无论算法是使用密码投影还是本机投影进行投影,算法的执行时间都应该相同。

© www.soinside.com 2019 - 2024. All rights reserved.