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 条件,第二个使用多个起始节点。
从性能的角度来看,哪一个应该运行得更快,并且可能在什么场景下运行。
我遇到了多个起始节点的性能问题,而我认为,逻辑上将其作为起始节点而不是条件应该更快的地方。
是否有根据不同场景使用哪种方法的规则。