Я запрашивая ArangoDb около 500к документа через arangojs.query()
с этой очень простой запросПочему этот простой 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()'? – dothebart
Если вы ищете 'c.id', у вас есть указатель на него? Обычно ArangoDB использует поле id id, которое получает автоматически созданный для него индекс. –
@dothebart: Я добавил объяснение. Но если он используется внутри самой базы данных, это очень быстро, и я никогда не видел, чтобы это заняло более 0,5 с –