在Neo4j v4.0中,图形数据科学图书馆:为什么在性能方面,本机投影比Cypher投影更好?

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

文档Creating graphs in the catalog在使用Native Projection而不是Cypher Projection时声称具有这种性能优势,但是没有给出太多解释。

自然投影 提供最佳性能...

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

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

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

那为什么会提高性能?

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

neo4j cypher graph-algorithm graph-data-science
1个回答
2
投票

您是正确的,所有投影最终都完全存储在内存中。密码投影和本机投影之间的区别在于,我们可以快速存储或实现投影图。据我所知,本机投影使用内部Neo4j API,这样可以更快地加载图形,但仅限于指定节点标签和关系类型。另一方面,Cypher投影支持cypher的所有功能,可以用来非常灵活地过滤要投影的子图。我们还可以投影一个虚拟图。虚拟图的非常常见的投影是仅使用密码投影将二分图投影为单图。您必须意识到,尽管密码查询越复杂,图形投影就越慢。而且,即使仅投影单个节点标签和关系类型,使用cypher投影也比使用本机投影要慢。但是,除非您的图形变得超过数千万个节点和关系,否则我不会为此担心很多。

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

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