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