我已经建立了一个简单的测试用例来最终学习一些图形数据库 我有一个简单的树结构,基于大约80000个顶点/文档的集合,每个都有大约25个属性.唯一的边缘是出站“is_parent”边缘,所以为了
我有一个简单的树结构,基于大约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和开发分支.它包含在提交9a1eb149aa4da514d709c43a4ebdfd8819ba2f1d中,如果你喜欢樱桃采摘.