CYPHER中的COUNT和DISTINCT查询导致javaheap内存错误

时间:2015-12-10 11:02:01

标签: neo4j cypher

密码查询:

MATCH (n1:ANIMAL)-[r:COHABITS]-(n2:ANIMAL)
RETURN distinct[id(n1),id(n2)] as tups, count(distinct[id(n1),id(n2)]) AS count
LIMIT 5

永远不会完成,即查询一直运行,直到neo4j遇到javaheap内存故障。但是当我执行时:

MATCH (n1:ANIMAL)-[r:COHABITS]-(n2:ANIMAL)
RETURN n1,r,n2
LIMIT 5

我得到了快速反应。

这有什么理由/解决方法吗?

1 个答案:

答案 0 :(得分:1)

对于distinct,Cypher需要在内存中构建结果集,以检查集合中是否已存在新结果。没有区别,它只是流式传输结果,只需要很少的堆空间。

根据:COHABITS

中增加堆空间设置所需的neo4j-wrapper.conf关系数量