Да, порядок операторов FILTER влияет на производительность запроса.
Особенно в вашем случае, где
easyFilter
это просто сравнение строк,
, в то время как hardFilter
состоит из нескольких операций
- итерационный массив + получение значений определенного ключа
- выравнивание этого массива
- проверка, содержит ли массив определенное значение
Что пропущено, так это важность индексов. Они являются теми, кто стоит за действительно совершенными запросами. Проверьте Обработка индексов в Документация ArangoDB , особенно Какой индекс использовать, когда .
Для повышения производительности вашего примера было бы определенно полезно добавить Hash или Skiplist index easyFilter (зависит от типа / уникальности ваших данных). Оба индекса поддерживают также массивы, но на основе документации, которая применяется только к простым массивам, содержащим значения, а не объекты.