Ich habe nur eine sehr einfache Frage zu stellen. Nehmen wir das Beispiel Filmdatenbank zur Verfügung gestellt von Neo4j und die folgenden zwei Abfragen:MATCH-Klausel mit Filtereigenschaften oder MATCH mit einer WHERE-Klausel?
MATCH (n:Person)-[:ACTED_IN]->(m:Movie {title:"The Matrix"})
RETURN n,m
und
MATCH (n:Person)-[:ACTED_IN]->(m:Movie)
WHERE m.title = "The Matrix"
RETURN n,m
Sind die beiden Abfragen rechnerisch äquivalent oder ist es der Fall, dass der erste Fall ist effizienter?
So wie ich es sehe, scheint MATCH im ersten Fall den angeforderten Teilgraphen "on-the-fly" zu erzeugen, während er den ursprünglichen Graphen durchläuft. Im zweiten Fall wird jedoch ein größerer Sub-Graph von MATCH erzeugt, der dann auf den angeforderten reduziert wird, sobald die redundanten Knoten gefiltert sind, nicht wahr? Kann irgendjemand diese Annahme irgendwie bestätigen, oder ist es falsch?
Danke Evgen. Das war sehr hilfreich. Es sieht so aus, als würden die beiden Abfragen die gleiche Arbeit leisten. Die Filterung wird priorisiert, um die Erzeugung redundanter Ergebnisse während der Verarbeitung der Abfrage zu vermeiden. –