为什么我的此密码查询出现内存不足错误
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个。
答案 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子句设置得更合理。