2016-05-19 5 views
1

Wie kann eine solche Abfrage 20 Sekunden dauern?Neo4j: Aktualisierungsbeziehung dauert zu lange, 20s

MATCH (Knoten) - [n] -() WHERE ID (n) = 5022545 SET n. updated_at = 1463694178, n. count = 3

während

MATCH (node) - [N] -() WHERE ID (n) = 5.022.545 RETURN n

Unmittelbare ... gibt es ein Weg, um herauszufinden, was Zeit braucht?

dank

+1

Verwenden Neo4j 3.x dann werden die Kosten Planer für Ihre beiden Abfragen verwendet werden. –

+1

in 2.x verwenden: cypher planner = Regel erklären Start n = rel (5022545) SET n.updated_at = 1463694178, n.count = 3 –

+0

Michael, das funktioniert wie ein Charme, danke;) – armedwing

Antwort

3

Neo4j stellt zwei Helfer für Sie: EXPLAIN UND PROFILE. EXPLAIN zeigt Ihnen den allgemeinen Abfrageplan, während PROFILE Ihnen eine bessere Vorstellung davon gibt, welche Ressourcen verbraucht werden (im Grunde genommen, wo die ganze Arbeit stattfindet).

So ... laufen so etwas wie:

PROFILE MATCH (node)-[n]-() 
WHERE ID(n) = 5022545 
SET n.updated_at= 1463694178 ,n.count= 3 
+0

danke. klingt schlecht, Traversal Matcher zeigt 21.558.384 db hits mit PROFILE an. Wie kommt es, dass eine Eigenschaft in einer Beziehung aktualisiert werden muss? – armedwing

+0

Das klingt nach einer anderen Frage. :) –