带有过滤属性的MATCH子句或带有WHERE子句的MATCH?

时间:2016-04-07 09:54:15

标签: neo4j cypher

我只想问一个非常简单的问题。假设neo4j提供的样本电影数据库和以下两个查询:

MATCH (n:Person)-[:ACTED_IN]->(m:Movie {title:"The Matrix"}) 
RETURN n,m

MATCH (n:Person)-[:ACTED_IN]->(m:Movie) 
WHERE m.title = "The Matrix" 
RETURN n,m

两个查询在计算上是等效的还是第一种情况更有效?

我看到它的方式,似乎在第一种情况下,MATCH产生所请求的子图"在飞行中"在遍历原始图表时。但是在第二种情况下,MATCH产生一个更大的子图,然后在冗余节点被过滤后减少到所请求的子图,对吗?任何人都能以某种方式证实这一假设,还是错误?

1 个答案:

答案 0 :(得分:1)

如果您想检查您的neo4j版本,如果此查询相同,则应使用profile语句。点击此处了解更多信息http://neo4j.com/docs/stable/how-do-i-profile-a-query.html