制限付きフィルターをクエリのできるだけ早い段階で配置する - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

制限付きフィルターをクエリのできるだけ早い段階で配置する

すべてのシナリオで、クエリにフィルターを早期に配置すると、クエリプランが考慮する必要がある中間ソリューションを減らすのに役立ちます。つまり、クエリの実行に必要なメモリとコンピューティングリソースが少なくなります。

次の例は、これらの影響を理解するのに役立ちます。に住むすべてのユーザーを返すクエリを記述するとしますIndia。クエリの 1 つのバージョンは次のとおりです。

MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WITH country, collect(n.firstName + " " + n.lastName) AS result WHERE country.name = 'India' RETURN result

上記のバージョンのクエリは、このユースケースを実現する最適な方法ではありません。フィルターはクエリパターンの後半country.name = 'India'に表示されます。まずすべての人物とその居住地を収集し、国ごとにグループ化してから、 のグループのみをフィルタリングしますcountry.name = India。に住んでいるユーザーのみをクエリしIndia、収集集約を実行する最適な方法です。

MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WHERE country.name = 'India' RETURN collect(n.firstName + " " + n.lastName) AS result

一般的なルールは、変数が導入された後できるだけ早くフィルターを配置することです。