2017-04-04 156 views
0

我的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. 

我認爲這個問題是我的查詢。任何想法如何改善?

我將非常感謝您的幫助!

回答

1

你想要做的是在查詢中使用參數。不知道你如何加載你的數據,但一個通用的例子看起來像這樣。

MERGE (Visitor1: Visitor {MAC:params.mac}) 
MERGE (CheckPoint1: CheckPoint {CheckPointId: params.checkpoint}) 
CREATE (Visitor1)-[:MAKES]->(Visit2: Visit {EnterTime: params.enterTime})-[:TO]->(CheckPoint1) 

希望這有助於

+0

謝謝!我一定會研究這個! – zavanton

相關問題