我正在評估ArangoDB,並發現GRAPH_EDGES和GRAPH_VERTICES命令非常緩慢,對小集合(300個頂點)。ArangoDB:GRAPH_EDGES命令對小集合非常緩慢(超過20秒)
我有3個集合:
TactiveService(300個頂點) - > TusesCommand(300個邊緣) - > Tcommand(1頂點)
使用GRAPH_EDGES,此查詢採取24秒
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}
出於同樣的結果,這個查詢需要0.020秒
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是不可用的,我在發言(同樣的問題GRAPH_VERTICES)。
對這種緩慢原因的想法是受歡迎的。
謝謝,你的第二個查詢是完美的,並與JOIN一樣快。 –