需要 neo4j 密码聚合性能帮助

neo4j cypher aggregation performance help needed

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

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

我想知道是否有办法让它运行更快

是的,您可以使用 size,它会产生 getDegree() 的 Java 等价物,并且性能更高。

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

如果比较查询计划,您会发现 size 的计划更线性:

WHERE NOT :

size() (getDegree)