Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
neo4j cypher-不同的查询计划行为_Neo4j_Cypher - Fatal编程技术网

neo4j cypher-不同的查询计划行为

neo4j cypher-不同的查询计划行为,neo4j,cypher,Neo4j,Cypher,带有位置节点标签的节点在标签上有索引。名称 分析以下查询为我提供了一个智能计划,在Trip节点两侧的图的两侧之间有一个NodeHashJoin。非常聪明。效果很好 PROFILE MATCH (rosen:Location)<-[:OCCURS_AT]-(ev:Event)<-[:HAS]-(trip:Trip)-[:OPERATES_ON]->(date:Date) WHERE rosen.name STARTS WITH "U Rosent" AND ev.sc

带有
位置
节点标签的节点在
标签上有索引。名称

分析以下查询为我提供了一个智能计划,在
Trip
节点两侧的图的两侧之间有一个
NodeHashJoin
。非常聪明。效果很好

PROFILE MATCH (rosen:Location)<-[:OCCURS_AT]-(ev:Event)<-[:HAS]-(trip:Trip)-[:OPERATES_ON]->(date:Date)
WHERE rosen.name STARTS WITH "U Rosent" AND
      ev.scheduled_departure_time > "07:45:00" AND
      date.date = '2015-11-20'

RETURN rosen.name, ev.scheduled_departure_time, trip.headsign
ORDER BY ev.scheduled_departure_time
LIMIT 20;

似乎改变了查询计划的整个行为,现在看起来更“连续”,失去了并行执行
(Trip)-[:operations\u ON]->(Date)

慢多了。总共增加了6倍的DB点击率

问题

为什么通过不同的索引/机制更改一个看似不相关的
位置
节点的检索会改变整个查询的行为?

(我不确定如何最好地传达有关图形模型的更多信息,但请提供建议,我很乐意添加缺少的细节)

编辑:

情况好转了。将该查询行更改为:

导致查询计划中的并行性丢失

这样的查询比
=
更快,这似乎很奇怪

WHERE rosen.name STARTS WITH "U Rosent" AND
WHERE id(rosen) = 4752371 AND
WHERE rosen.name STARTS WITH "U Rosent" AND
WHERE rosen.name = "U Rosenthaler Platz." AND