Graph ArangoDB中图形遍历的性能问题

Graph ArangoDB中图形遍历的性能问题,graph,arangodb,Graph,Arangodb,我已经设置了一个简单的测试用例,以最终学习一些图形数据库 我有一个简单的树结构,它基于大约80000个顶点/文档的集合,每个顶点/文档大约有25个属性。唯一的边是出站的“is_parent”边,因此要查找每个节点的子节点,我可以简单地拾取所有入站边。我没有在任何字段上设置任何特定索引。 树有20层深,我在第五层抓取一个随机节点,然后使用图遍历来拾取该节点的所有后代: FOR t IN GRAPH_TRAVERSAL("sample_tree", "sampleunit/2565130142666

我已经设置了一个简单的测试用例,以最终学习一些图形数据库

我有一个简单的树结构,它基于大约80000个顶点/文档的集合,每个顶点/文档大约有25个属性。唯一的边是出站的“is_parent”边,因此要查找每个节点的子节点,我可以简单地拾取所有入站边。我没有在任何字段上设置任何特定索引。 树有20层深,我在第五层抓取一个随机节点,然后使用图遍历来拾取该节点的所有后代:

FOR t IN GRAPH_TRAVERSAL("sample_tree", "sampleunit/2565130142666", "inbound",  {"maxDepth":20}) RETURN t'

这在我的开发机器上需要3秒钟多一点,我觉得我可能做错了什么。有什么方法可以加快速度吗?或者我有什么概念上的问题吗?

我按照您的描述建立了一个类似于树的示例图,并对其进行了查询

有趣的是,以下查询的执行速度比您的查询快得多:

FOR t IN TRAVERSAL(sampleunit, unitlinks, "sampleunit/2565130142666", "inbound",  {"maxDepth":20}) RETURN t
上面的查询使用AQL中的“旧”遍历函数。我们检查了为什么这两种遍历类型之间存在性能差异,最后发现了一些可以改进的地方


这方面的修复已被推到2.2和devel分支中。如果您喜欢樱桃采摘,它包含在commit 9A1EB149AA4DA514D709C43A4 EBDFD8819BA2F1D中。

我在2.6.3版上看到了邻居和图形邻居之间的类似问题,第一个比第二个快30倍