Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个启动节点的neo4j cypher性能_Neo4j_Cypher - Fatal编程技术网

具有多个启动节点的neo4j cypher性能

具有多个启动节点的neo4j cypher性能,neo4j,cypher,Neo4j,Cypher,在上面的grpah中,查询的目的 start n=node(1) match n-[:KNOWS]->m-[:KNOWS]->p where p.name='Cypher' return n, m, p 就是找到m,这样Neo认识m,m认识Cypher 同样,也可以通过以下查询实现- start n=node(1), p=node(4) match n-[:KNOWS]->m-[:KNOWS]->p return n, m, p 第一个使用where条件,第二个使用多

在上面的grpah中,查询的目的

start n=node(1) match n-[:KNOWS]->m-[:KNOWS]->p where p.name='Cypher' return n, m, p
就是找到m,这样Neo认识m,m认识Cypher

同样,也可以通过以下查询实现-

start n=node(1), p=node(4) match n-[:KNOWS]->m-[:KNOWS]->p return n, m, p
第一个使用where条件,第二个使用多个开始节点

从性能的角度来看,哪一个应该运行得更快,可能在什么情况下

我曾经遇到过多个启动节点的性能问题,而我认为,从逻辑上讲,将它作为启动节点,而不是条件应该更快的地方


根据不同的场景,有没有关于使用哪种方法的规则。

到目前为止,我们已经开发了cypher语言,在1.8中添加了更新功能

在Neo4j 1.9中,我们将重点关注cypher性能

到目前为止,具有单个起点的模式匹配器比具有多个起点的模式匹配器速度更快。但是,如果仅在事实发生后进行过滤(如在第一次查询中),它们的执行速度可能仍然较慢(取决于结果卷)


但这将在下一版本中发生变化。我认为到目前为止,我能给你的最好建议是用你的真实数据集来分析查询(如果你还没有预期的数据,就编写数据生成器)。

到目前为止,我们已经在使用cypher语言,在1.8中添加了更新功能

在Neo4j 1.9中,我们将重点关注cypher性能

到目前为止,具有单个起点的模式匹配器比具有多个起点的模式匹配器速度更快。但是,如果仅在事实发生后进行过滤(如在第一次查询中),它们的执行速度可能仍然较慢(取决于结果卷)


但这将在下一版本中发生变化。我认为目前为止我能给你的最好建议是使用真实的数据集分析查询(如果你还没有预期的数据,请编写数据生成器)。

Cypher在Neo4j 1.9中为两个起点使用了新的双向模式匹配器。M01可能想尝试一下并报告。Cypher正在使用新的,Neo4j 1.9.M01中用于两个起点的双向模式匹配器可能需要尝试并报告。