http://console.neo4j.org/r/8mkc4z
上記のグラフでは、クエリの目的
start n=node(1) match n-[:KNOWS]->m-[:KNOWS]->p where p.name='Cypher' return n, m, p
Neo が m を知り、m が Cypher を知るように、m を見つけることです。
次のクエリでも同じことが実現できます-
start n=node(1), p=node(4) match n-[:KNOWS]->m-[:KNOWS]->p return n, m, p
1 つ目は where 条件を使用し、2 つ目は複数の開始ノードを使用します。
パフォーマンスの観点から、どちらをより速く実行する必要があり、おそらくどのシナリオで実行する必要がありますか。
複数の開始ノードでパフォーマンスの問題に直面しましたが、論理的には、条件がより高速である必要がある場所ではなく、開始ノードとして持っていると思います。
さまざまなシナリオに基づいて使用するアプローチに関する規則はありますか。