如何提高计数节点上关系数量的性能
使用 Cypher 可以通过以下方式计数关系数量
MATCH (n:Actor {name:'Sylvester Stallone'})-->() RETURN count(*);
这将报告名为 Sylvester Stallone 的 Actor
节点的入站/出站关系数量。
使用 bin/neo4j-shell
并对查询进行性能分析(profile)将产生以下输出
Cypher 可以重写为
MATCH (n:Actor {name:'Sylvester Stallone'})
RETURN size((n)-->())
其性能分析结果是
从上面的性能分析中,您将看到对 GetDegree(n,None,BOTH)
的引用,这是由于使用了 size( (n)-[]-());
的结果。因此,我们实际上不会对从 (n)
开始的关系进行遍历,而是查阅给定节点存储的度值。
在上面的 GetDegree()
表达式中,第二个参数指的是关系名称,第三个参数指的是关系方向。
例如,Cypher 查询
MATCH (n:Actor {name:'Sylvester Stallone'})
RETURN size( (n)-[:ACTED_IN]->())
将产生以下性能分析结果
因此是 GetDegree(n,Some(ACTED_IN),OUT)
此页面有帮助吗?