需要 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)
我有以下查询(带有虚拟关系和标签名称), 探查器显示我的 #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)