2013-07-20 12 views
5

Könnte jemand bitte erklären oder Links bereitstellen, wo wir mehr über den Profilbefehl erfahren und die Ausführungspläne der Cypher-Abfrage für Optimierungsanforderungen verstehen und verstehen, wie Cypher funktioniert.Grundlegendes zu Neo4j Cypher Profilschlüsselwort und Ausführungsplan

Zum Beispiel habe ich die folgende Neo4j (Version 2.0) Beispieldatenbank erstellt.

create (ayan:Person{name:"Ayan",age:25}), 
(dixi:Person{name:"Dixi",age:26}), 
(thaggu:Person{name:"Thaggu",age:27}), 
(santosh:Person{name:"Santosh",age:28}), 
(ayan)-[:FRIEND]-(santosh), 
(ayan)-[:FRIEND]-(dixi), 
(thaggu)-[:FRIEND]-(dixi); 

Nun, wenn ich laufe die einfache Abfrage unten,

profile match n:Person, n-[:FRIEND]-m where n.name="Ayan" return m; 

ich folgendes Ergebnis zu erhalten, aber ich bin nicht in der Lage die explaination unter dem Ergebnis zu verstehen. Bitte helfen Sie.

+--------------------------------+ 
| m        | 
+--------------------------------+ 
| Node[4]{age:28,name:"Santosh"} | 
| Node[2]{age:26,name:"Dixi"} | 
+--------------------------------+ 
2 rows 



==> ColumnFilter(symKeys=["n", "m", " UNNAMED17"], returnItemNames=["m"], _rows=2, _db_hits=0) 

==> PatternMatch(g="(m)-[' UNNAMED17']-(n)", _rows=2, _db_hits=0) 

==> Filter(pred="(Property == Literal(Ayan) AND hasLabel(n: Person))", _rows=1, _db_hits=4) 

==>  NodeByLabel(label="Person", identifier="n", _rows=4, _db_hits=0) 

Antwort

5

Die Profilinformationen sind momentan noch nicht fertig und daher nicht dokumentiert. Die kritische Zahl sind jedoch die _db_hits, die nicht außergewöhnlich hoch sein sollten, da sie teuer sind.

1

den Ausführungsplan

Ab Neo4j 2.2 gibt es ein Kapitel in der Dokumentation zu verstehen, die den Ausführungsplan erklärt, siehe Chapter 16. Execution Plans.

Wie eine Abfrage

Es gibt auch eine neue Profilierung Schlüsselwort, EXPLAIN, profilieren, die Sie den Ausführungsplan anzeigen können, ohne dass die Abfrage ausgeführt wird. Schließlich gibt es einen neuen, "kostenbasierten" (im Gegensatz zu "regelbasierten") Abfrageplaner, und Sie können die Verwendung eines der Planer für alle Abfragen oder für einzelne Abfragen erzwingen. Weitere Informationen zu den neuen Profilierungsfunktionen und Links zur entsprechenden Dokumentation finden Sie unter Is there a way to show cypher execution plan?.