【发布时间】:2016-04-02 09:11:08
【问题描述】:
我的数据库有以下“模式”:
- 用户 作者 帖子
- 用户 喜欢 帖子
我的测试数据库包含:
- 162 个用户
- 442 个帖子
- 159 个赞
现在我想查询最受欢迎的用户,即在所有帖子中获得最多赞的用户。我想出了以下查询:
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
}
在我的 2014 年中 MacBookPro(2.8GHz Core i7,16GB RAM)上执行大约需要 0.8 秒。 0.8s 并不可耻,但在这么小的数据集上,考虑到 AFAIK,这一切都发生在内存中,我本以为会更好。
如果有一些 ArangoDB 专家可以查看我的查询并提示一些潜在的性能问题,我将不胜感激。非常感谢!
【问题讨论】:
-
如果您使用建议的图遍历,您的查询速度有多快,使用连接的速度有多快?谢谢!
标签: arangodb