СОРТИРОВАТЬ ЗАПРОС слишком медленно в Neo4j Cypher

У меня есть простой набор данных со следующей структурой узла id: int, txt: string

и 400 000 узлов, и я создал индекс для свойства id. Когда я запускаю простой запрос

profile MATCH (n:LABEL) RETURN n.id LIMIT 25

Это использует индекс и работает быстро, но когда я запускаю этот запрос

profile MATCH (n:LABEL) RETURN n.id order by n.id desc limit 25

Этот запрос не использует индекс и возвращает результат около 1200 мс каждый раз.

Что мне не хватает и почему индексы не используются в этом запросе?

1 ответ

Это ахиллесова пята Neo4j, поскольку индексированные свойства ORDER BY по-прежнему не используют индексы.

У процедур APOC есть некоторая поддержка для получения упорядоченного диапазона с использованием индекса, хотя я сталкивался с некоторыми проблемами с этим ранее. В последнее время функциональность не перепроверена, поэтому стоит попробовать.

Другие вопросы по тегам