Neo4j没有足够的内存用于CREATE查询 - 尝试增加'dbms.memory.heap.max_size'例外
问题描述:
我的Neo4j查询的可伸缩性存在问题。 我试图填充数据库与这些查询:Neo4j没有足够的内存用于CREATE查询 - 尝试增加'dbms.memory.heap.max_size'例外
CREATE (Visitor1: Visitor {MAC:'00:0a:95:9d:68:16'})
CREATE (Visitor2: Visitor {MAC:'a7:e1:29:0f:7b:42'})
…
CREATE (CheckPoint1: CheckPoint {CheckPointId: 1})
CREATE (CheckPoint2: CheckPoint {CheckPointId: 2})
…
CREATE (Visitor1)-[:MAKES]->(Visit1: Visit {EnterTime: 1491061320000})-[:TO]->(CheckPoint1)
CREATE (Visitor1)-[:MAKES]->(Visit2: Visit {EnterTime: 1491061860000})-[:TO]->(CheckPoint46)
…
这些查询利用自己编写的脚本生成。该数据库已成功为10位访客和100位访客创建。但是,当我试图创建1000个访客(50点关口及6000访问),数据库抛出和异常:
There is not enough memory to perform the current task. Please try increasing ‘dbms.memory.heap.max_size’ in neo4j configuration.
我认为这个问题是我的查询。任何想法如何改善?
我将非常感谢您的帮助!
答
你想要做的是在查询中使用参数。不知道你如何加载你的数据,但一个通用的例子看起来像这样。
MERGE (Visitor1: Visitor {MAC:params.mac})
MERGE (CheckPoint1: CheckPoint {CheckPointId: params.checkpoint})
CREATE (Visitor1)-[:MAKES]->(Visit2: Visit {EnterTime: params.enterTime})-[:TO]->(CheckPoint1)
希望这有助于
谢谢!我一定会研究这个! – zavanton