繁体   English   中英

为什么这个简单的ArangoDB查询有时会花费很长时间

[英]Why this simple ArangoDB query sometimes takes very long time

我正在使用此非常简单的查询通过arangojs.query()查询约500k文档的arangojs.query()

"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()的输出,请参见 AQL执行和性能》一章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM