【发布时间】:2012-08-31 14:09:45
【问题描述】:
http://console.neo4j.org/r/8mkc4z
在上面的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 正在为 Neo4j 1.9.M01 中的两个起点使用新的双向模式匹配器,您可能想尝试一下并报告。