Performance Cypher:使用WHERE子句或MATCH属性定义进行精确匹配?
在Neo4j(3.0版)中,以下查询返回相同的结果:Performance Cypher:使用WHERE子句或MATCH属性定义进行精确匹配?,performance,neo4j,cypher,query-tuning,Performance,Neo4j,Cypher,Query Tuning,在Neo4j(3.0版)中,以下查询返回相同的结果: 1. MATCH (a:Label) WHERE a.property = "Something" RETURN a 2. MATCH (a:Label {property: "Something"}) RETURN a 在处理一些大型数据集时,我注意到(并使用EXPLAIN和PROFILE进行了验证)在某些情况下,像第二个这样的查询执行得更好更快。虽然存在两个版本性能相同的其他实例,但我还没有看到第一个版本性能更好的实例 neo4j文档和
1. MATCH (a:Label) WHERE a.property = "Something" RETURN a
2. MATCH (a:Label {property: "Something"}) RETURN a
在处理一些大型数据集时,我注意到(并使用EXPLAIN
和PROFILE
进行了验证)在某些情况下,像第二个这样的查询执行得更好更快。虽然存在两个版本性能相同的其他实例,但我还没有看到第一个版本性能更好的实例
neo4j文档和教程也分为两部分。两者之间没有明确的比较。docs和tut使用两个版本,通常倾向于第一个版本(可能是因为非精确匹配只能使用WHERE
子句)。但指导方针还指出,越早缩小搜索范围,搜索速度就越快