Ich bewerte ArangoDB und ich sehe, dass GRAPH_EDGES und GRAPH_VERTICES Befehle sehr langsam sind, auf kleine Sammlungen (300 Vertices).ArangoDB: GRAPH_EDGES Befehl sehr langsam (mehr als 20 Sek.) Auf kleine Sammlungen
I 3 Sammlungen haben:
TactiveService (300 Knoten) -> TusesCommand (300 Edges) -> Tcommand (1 Vertex)
GRAPH_EDGES verwenden, nehmen Sie diese Abfrage 24 sec
FOR service IN TactiveService
LET usesCommand = (
return FIRST(GRAPH_EDGES("topvision", {}, { edgeExamples : [{_from: service._id}], edgeCollectionRestriction : "TusesCommand", includeData:true, maxDepth : 1 }))
)
LET command = DOCUMENT(usesCommand[0]._to)
RETURN { service : service, usesCommand: usesCommand[0], command:command}
Aus dem gleichen Ergebnis, diese Abfrage dauert 0,020 sec
FOR service IN TactiveService
LET usesCommand = (
FOR usesCommand IN TusesCommand
FILTER usesCommand._from == service._id
RETURN usesCommand
)
LET command = DOCUMENT(usesCommand[0]._to)
RETURN { service : service, usesCommand: usesCommand[0], command:command}
GRAPH_EDGES ist unbrauchbar für mich FOR-Anweisung (gleiches Problem mit GRAPH_VERTICES) in.
Ideen über den Grund dieser Langsamkeit sind willkommen.
Danke, Ihre zweite Abfrage ist perfekt und so schnell wie das JOIN. –