Neo4j - оптимизация производительности зашифрованных запросов - PullRequest
0 голосов
/ 06 декабря 2018

У меня следующий запрос Neo4j Cypher.Это намеревается сделать так: он проверяет случаи, когда к узлу нет входящих ребер, и удаляет исходящие ребра.Это будет выполняться в цикле до тех пор, пока счетчик возвращений не станет 0. Этот запрос работает, как и ожидалось, для меньшего набора данных, но занимает много времени и зависает при работе с большим набором данных.

Буду признателен за любую помощьпри оптимизации этого запроса.

match (n1)-[e1]->(n2)-[:infer_using_std_err]->(n3) where not (n1)-[:infer_using_std_err]->(n2) match (n4)-[:infer_using_std_err]->(n5) with collect(distinct(n5)) as node_lst1, collect(distinct(n2)) as node_lst2 with filter(k IN node_lst2 WHERE NOT k IN node_lst1) as res_node_lst unwind res_node_lst as r1 match(r1)-[e:infer_using_std_err]->(r2) delete(e) return count(e)

...