ArangoDB崩溃时有两个跳图查询。
图像三个顶点集合VA,VB和VC。 VA连接到VB和VC。我们有一个VB实例,想要通过边和VA实例连接到它的所有VC。
所有这些都在图表中定义,以使用Arango图API访问它们。我使用以下AQL语句来查询图形。首先,我获得连接到VB实例的所有VA,然后是连接到VA的所有VC。
FOR va IN GRAPH_NEIGHBORS("Graph", "VB/Instance", {direction: "inbound", edgeCollectionRestriction: "eAB"})
FOR vc in GRAPH_NEIGHBORS("Graph", va._id, {direction: "outbound", edgeCollectionRestriction: "eBA"})
RETURN vc
结果是,经过几分钟的计算后,ArangoDB崩溃,日志文件中没有任何有用的信息。
将边缘模拟为文档而不是文档之间的链接似乎非常低效,因为在这样的查询中,整个边集合已经多次运行以找到正确的链接。我假设两个跃点对于数据库来说是非常重要的。或者是否有可能改进查询而不会导致数据库崩溃?
答案 0 :(得分:3)
在几天前(2015年6月)的2.6版本中,我们进行了一些更改,以使GRAPH_NEIGHBORS
和NEIGHBORS
更快。
正如评论中所见,这似乎解决了这个问题。