neo4j cypher聚合性能需要帮助

时间:2015-10-14 11:47:03

标签: performance neo4j cypher aggregation

我有以下查询(带有虚拟关系和标签名称), 并且探查器显示我的#of命中数是用户节点数的3倍。

MATCH (user:User) 
WHERE NOT(user-[:r1]->(:L1)) AND NOT(user-[:r2]->(:L2)) 
return count(user)

我想知道是否有办法让它跑得更快

1 个答案:

答案 0 :(得分:1)

是的,你可以使用size来生成相当于getDegree()的Java,并且性能更高。

MATCH (user:User)
WHERE size((user)-[:r1]->(:L1)) = 0
AND size((user)-[:r2]->(:L2)) = 0
return count(user)

如果您比较查询计划,您可以看到包含大小的计划更加线性:

WITH WHERE NOT

enter image description here

WITH size()(getDegree)

enter image description here