[英]Does the order of FILTER statement affect the performance of query in arangoDB?
例如,我有这个数据结构
{
easyFilter:1111,
hardFilter:[
{id:1},
{id:2},
...
]
}
如果我使用的查询像
For u in collection
Filter u.easyFilter=1111 AND "somevalue" IN FLATTEN(u.hardFilter[*].id)
return u
如果我将easyFilter
放在第一位,因为它只是在对象的第一级上进行字符串比较,那么查询运行速度会更快吗?
是的,FILTER语句的顺序确实会影响查询的性能。
特别是在您的情况下
easyFilter
只是字符串比较,
而hardFilter
是由多个操作构成的
省略了索引的重要性。 他们是真正的性能查询背后的人。 检查ArangoDB文档中的 处理索引 ,特别是何时使用哪个索引 。
为了提高示例的性能,添加哈希或Skiplist索引easyFilter绝对有帮助(取决于数据的类型/唯一性)。 这两个索引也都支持数组,但是基于文档,这仅适用于包含值的简单数组,而不适用于对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.