具有几乎不同的执行时间的几乎相等的Cypher查询

时间:2019-01-17 14:46:01

标签: neo4j cypher

我有一个查询模板:

MATCH path=(start:LABEL)<-[:PATH*]-(global:LABEL)
WHERE all(node IN nodes(path) WHERE node:LABEL) AND
      id(start) =  id_one AND
      id(global) = id_two
RETURN start

取决于我输入的ID,这会导致执行时间大不相同。

那怎么办?如何确保任意两个ID组合的执行时间短?

1 个答案:

答案 0 :(得分:0)

我的解决方案现在看起来像这样:

MATCH (start:LABEL)
WHERE id(start)= {}
MATCH (end:LABEL)
WHERE id(end) = {}
MATCH path=shortestPath((start)<-[:PATH*]-(end))
RETURN DISTINCT start

这对我来说快了很多。