【发布时间】:2015-01-05 14:45:14
【问题描述】:
我是新的 ArangoDB 用户,我正在使用以下查询
FOR i IN meteo
FILTER
i.`POM` == "Maxial"
&& TO_NUMBER(i.`TMP`) < 4.2
&& DATE_TIMESTAMP(i.`DTM`) > DATE_TIMESTAMP("2014-12-10")
&& DATE_TIMESTAMP(i.`DTM`) < DATE_TIMESTAMP("2014-12-15")
RETURN
i.`TMP`
关于 200 万个文档集合。它在被过滤的三个字段上有一个索引。它需要aprox。 Web 界面上的 9 秒。
是否可以更快地运行它?
谢谢
雨果
【问题讨论】:
-
能否提供集合
meteo的索引定义,以及查询解释结果?通过查看上面的查询,我只能说属性TMP和DTM上的索引不会被使用,因为这些属性是直接使用的,但它们在函数表达式中使用。为了在TMP上使用索引,最好将表达式DATE_TIMESTAMP(i.DTM) < DATE_TIMESTAMP("2014-12-10")转换为i.DTM < "2014-12-10"。 -
POM、DTM、TMP字段中有哈希索引
-
@stj 我有原始查询的 explain() 结果和您的建议的查询。我应该在这里发布吗?
-
是的,请。对于
POM值为Maxial,大约有多少结果? -
这个查询的结果有12个值。 Stack 不允许在此处发布解释结果。太长了。
标签: arangodb