Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Platzieren Sie restriktive Filter so früh wie möglich in der Abfrage
In allen Szenarien hilft eine frühzeitige Platzierung von Filtern in der Abfrage dabei, die Zwischenlösungen zu reduzieren, die ein Abfrageplan berücksichtigen muss. Das bedeutet, dass weniger Arbeitsspeicher und weniger Rechenressourcen für die Ausführung der Abfrage benötigt werden.
Das folgende Beispiel hilft Ihnen, diese Auswirkungen zu verstehen. Angenommen, Sie schreiben eine Abfrage, um alle Personen zurückzugeben, die dort lebenIndia. Eine Version der Abfrage könnte wie folgt aussehen:
MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WITH country, collect(n.firstName + " " + n.lastName) AS result WHERE country.name = 'India' RETURN result
Die obige Version der Abfrage ist nicht der optimale Weg, um diesen Anwendungsfall zu erreichen. Der Filter country.name = 'India' erscheint später im Abfragemuster. Er sammelt zunächst alle Personen und ihren Wohnort und gruppiert sie nach Ländern. Anschließend wird nur nach der Gruppe gefiltert, für die sie sich befindetcountry.name = India. Die optimale Methode, nur nach Personen abzufragen, die dort leben, India und dann die Sammelaggregation durchzuführen.
MATCH (n)-[:lives_in]->(city)-[:part_of]->(country) WHERE country.name = 'India' RETURN collect(n.firstName + " " + n.lastName) AS result
Eine allgemeine Regel lautet, einen Filter so bald wie möglich nach der Einführung der Variablen zu platzieren.