内存不足错误Neo4j

时间:2015-01-29 19:51:25

标签: 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个。

2 个答案:

答案 0 :(得分:2)

看起来你可能会返回20亿行。尝试先降低限制。在那之后,它取决于您的机器可以容纳的内容。

见评论:

  

它创建一个大小为2000000000的数组来排序(top-k select),   为什么你会使用这样的限制呢?尝试限制10或100或否   限制    - Michael Hunger

答案 1 :(得分:1)

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