У меня есть график neo4j, который составлен Serie как узлы и EDGE как отношения. У меня есть запрос, который способен вычислять allShortestaPaths между двумя узлами.Выполнение запроса NEO4J, запрашивающего несколько раз
MATCH (serie1:Serie {serie_id: 'id1'}),
(serie2:Serie {serie_id: 'id2'}),
p = allShortestPaths((serie1)-[EDGE*..6]-(serie2))
RETURN p as shortestPath
Мое приложение делает несколько итераций, на каждой итерации выполнить запрос несколько раз с помощью двух различных узлов (serie1, serie2), а затем записывает новые КРАЯ на графике.
Первая итерация (20 запросов) выполняется очень быстро, но на второй итерации время ответа начинает увеличиваться, и запрос занимает более 3 минут при каждом выполнении.
Я создал индекс по свойству serie_id, а также увеличил кучу пространства до 8 ГБ пространства, а размер кеша страницы также был включен с достаточным пространством.
Я также изучал, может ли запрос быть переписан другим способом, но кажется, что это лучший способ.
Я полагаю, что проблема связана с количеством исполнений, но не уверен в том, как ее оптимизировать.
какая версия neo4j вы используете? –
Вы можете «ПРОФИЛЬ» один из запросов до и после первой итерации, чтобы сравнить результаты? –
Im using neo4j version 3.6 – silvestrelosada