Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 为什么这个简单的ArangoDB查询有时需要很长时间_Performance_Arangodb - Fatal编程技术网

Performance 为什么这个简单的ArangoDB查询有时需要很长时间

Performance 为什么这个简单的ArangoDB查询有时需要很长时间,performance,arangodb,Performance,Arangodb,我正在通过arangojs.query()通过这个非常简单的查询查询大约500k个文档的ArangoDb "FOR c IN Entity FILTER c.id == 261764 RETURN c" 它是节点链接图中的一个节点 但有时,这需要10秒以上,arangodb的日志中也有关于查询时间过长的警告。如果在浏览器上使用新会话,则会发生很多时间。是arangodb或arangojs的问题还是我的查询本身没有优化 -------------------编辑-----------------

我正在通过
arangojs.query()
通过这个非常简单的查询查询大约500k个文档的ArangoDb

"FOR c IN Entity FILTER c.id == 261764 RETURN c"
它是节点链接图中的一个节点

但有时,这需要10秒以上,arangodb的日志中也有关于查询时间过长的警告。如果在浏览器上使用新会话,则会发生很多时间。是arangodb或arangojs的问题还是我的查询本身没有优化

-------------------编辑----------------------

添加了db.explain

Query string:
 FOR c IN Entity FILTER c.id == 211764 RETURN c

Execution plan:
 Id   NodeType                    Est.   Comment
  1   SingletonNode                  1   * ROOT
  2   EnumerateCollectionNode   140270     - FOR c IN Entity   /* full collection scan */
  3   CalculationNode           140270       - LET #1 = (c.`id` == 211764)   /* simple expression */   /* collections used: c : Entity */
  4   FilterNode                140270       - FILTER #1
  5   ReturnNode                140270       - RETURN c
使用的索引:

 none
应用的优化规则:

 none

正如您的解释所示,您的查询不使用索引,而是进行完整的集合扫描

根据查找匹配项的时间(在集合开始或结束时),执行时间可能会有所不同


请参阅创建索引以及如何分析
db的输出一章。_explain()

能否添加
db的输出。_explain()
?如果您在
c.id
上搜索,是否有索引?通常ArangoDB使用一个id字段_id,它会自动为它创建一个索引。@dothebart:我添加了解释。但如果在数据库内部使用,它的速度非常快,而且我从未看到它超过0.5秒