Meine Datenbank hat folgende "Schema":Social network-ish Abfrage in ArangoDB
- BenutzerAutorBeiträge
- BenutzerwieBeiträge
Meine bescheidenen Testdatenbank enthält:
- 162 Benutzer
- 442 Beiträge
- 159 mag
Nun möchte Ich mag die beliebtesten Benutzer abzufragen, welche die Benutzer, die gesammelt haben, die die meisten Likes in allen ihren Beiträgen. Ich kam mit der folgenden Abfrage auf:
FOR u IN users
LET nblikes = SUM(FOR post IN 1 OUTBOUND u isAuthor
RETURN LENGTH(GRAPH_EDGES('my-graph', post, { edgeCollectionRestriction: 'likes' })))
SORT nblikes DESC
RETURN {
"username": u.username,
"nblikes": nblikes
}
, die in etwa 0,8 s auf meiner Mitte 2014 führt MacBookPro (2,8 GHz Core i7, 16 GB RAM). 0.8s ist nicht beschämend, aber auf solch einem kleinen Datensatz hätte ich besser erwartet, dass, AFAIK, alles in Erinnerung ist.
So würde ich mich freuen, wenn einige ArangoDB Gurus da draußen meine Abfrage überprüfen und einige potenzielle Leistungsprobleme hinweisen könnten. Danke vielmals!
Wie schnell ist Ihre Abfrage, wenn Sie die vorgeschlagene Graph Traversal verwenden, und wie schnell ist es mit einem Join? Vielen Dank! – CoDEmanX