名前付きパスを使用しない (必須でない限り) - Amazon Neptune

名前付きパスを使用しない (必須でない限り)

クエリの名前付きパスには常に追加コストがかかります。これにより、レイテンシーとメモリ使用量の増加というペナルティが発生する可能性があります。次のクエリについて考えます。

MATCH p = (n)-[:commentedOn]->(m) WITH p, m, n, n.score + m.score as total WHERE total > 100 MATCH (m)-[:commentedON]->(o) WITH p, m, n, distinct(o) as o1 RETURN p, m.name, n.name, o1.name

上記のクエリでは、ノードのプロパティのみを知りたいと仮定すると、パス「p」を使用する必要はありません。名前付きパスを変数として指定することで、DISTINCT を使用した集約オペレーションは時間とメモリ使用量の両方でコストがかかります。上記のクエリのより最適化されたバージョンは次のとおりです。

MATCH (n)-[:commentedOn]->(m) WITH m, n, n.score + m.score as total WHERE total > 100 MATCH (m)-[:commentedON]->(o) WITH m, n, distinct(o) as o1 RETURN m.name, n.name, o1.name