内存不足错误 Neo4j

Out of Memory Error Neo4j

为什么我的密码查询出现内存不足错误

       MATCH sender-[r:COMMENTED]->errand  
       WHERE id (errand) = 214 
       RETURN sender, errand, r.ctime as ctime, 
             r.message as message, id(r) as id, 
             r.anonymous as anonymous 
       ORDER BY r.ctime ASC SKIP 0 LIMIT 2000000000

编辑我存储的节点少于 100 个。

看起来您可能返回了 20 亿行。尝试先降低限制。在那之后,就看你的机器能坚持什么了。

查看评论:

it creates an array of size 2000000000 to sort into (top-k select), why would you use such an limit anyway? try limit 10 or 100 or no limit - Michael Hunger

为了将来参考,这似乎是 Neo4j 中的一个问题 2.x。我们在单元测试中有查询碰巧有一个非常高的上限(只是一个技术事故;它只发生在测试期间),并且测试在 Neo1j 1.9 中通过但在 Neo4j 2.x 中开始失败。 "OutOfMemoryError: : Requested array size exceeds VM limit" 等等 似乎在 Neo4j 2.x 中,行为更改为急切地为数组分配 LIMIT 子句的大小。 简单的解决方法是将 LIMIT 子句设置得更合理。