Написание более эффективного Neo4J Cypher Query - PullRequest
0 голосов
/ 01 октября 2018

У меня следующий запрос:

CALL apoc.index.relationships('TO','user:37f0ce60-b428-11e8-bb45-9394d4f42b57') YIELD rel, start, end 
WITH DISTINCT rel, start, end 
MATCH (ctx:Context) 
WHERE rel.context = ctx.uid AND (ctx.name="iG9CE55wbtY" ) 
RETURN DISTINCT start.uid AS source_id, start.name AS source_name, end.uid AS target_id, end.name AS target_name, rel.uid AS edge_id, ctx.name AS context_name, rel.statement AS statement_id, rel.weight AS weight;

, который использует индексированные отношения.Однако обработка занимает от 4 до 10 секунд.

Вот результаты с PROFILE:

enter image description here enter image description here

Cypher version: CYPHER 3.3, planner: COST, runtime: INTERPRETED. 470705 total db hits in 2758 ms.

Могу ли я что-нибудь оптимизировать в этом запросе, например, используя параметры или переписав его любым способом, который может улучшить производительность?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...