创建图形时是否有冗余查询?

时间:2015-03-31 19:13:01

标签: arangodb

每当我尝试创建一个700.000到2 Mio边缘的新图形时,都需要很长时间。我观察到由于API中的新功能

 /_api/query/current

可能图形创建会自动触发某种缓存加载,但两次?

[
  {
    "id": "70",
    "query": "FOR x IN GRAPH_VERTICES(@graph, {}) SORT RAND() LIMIT @limit RETURN x",
    "started": "2015-03-31T19:06:59Z",
    "runTime": 41.95919394493103
  },
  {
    "id": "71",
    "query": "FOR x IN GRAPH_VERTICES(@graph, {}) SORT RAND() LIMIT @limit RETURN x",
    "started": "2015-03-31T19:06:59Z",
    "runTime": 41.95719385147095
  }
]

这是对的吗?有更有效的方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

图表查看器两次发出上述RAND()查询: - 触发一个实例以确定图中的随机顶点 - 触发另一个实例以确定图形的某些随机顶点的属性,以便填充搜索输入字段

图表查看器使用的AQL效率低下。它构建一个大的列表,随机排序并从中返回1(第一个查询)或10个(第二个查询)文档。这已在提交c28575f202a58d5c93e6c36883effda48c2a7159中修复,因此现在效率更高。

修复程序将包含在下一个版本中(即2.5.2)。