我有一個大圖模型,需要將以下查詢的結果寫入csv。從Neo4j載入9M行並將其寫入CSV會拋出內存異常
Match (u:USER)-[r:PURCHASED]->(o:ORDER)-[h:HAS]->(i:ITEM) return u.id as userId,i.product_number as itemId
這表明,估算結果是9M左右的東西。我的問題是:
1)需要很長時間才能得到回覆。從neo4j-shell需要38分鐘!這是正常的嗎?順便說一句,我有所有架構索引那裏,他們都在線。
2)當我使用SpringDataNeo4j來獲取結果時,它會拋出一個「java.lang.OutOfMemoryError:GC開銷超限」的錯誤,當SDN嘗試將加載的數據轉換爲我們的@QueryResult對象時會發生這種情況。
我試圖以各種不同的方式優化查詢,但沒有任何改變!我的印象是我做錯了什麼。有誰知道我如何解決這個問題?我應該去批量讀/寫嗎?
P.S我使用的Neo4j comunity版版本:3.0.1,這些都是我的sysinfos:
,這些都是我的服務器CONFIGS。
dbms.jvm.additional=-Dunsupported.dbms.udc.source=tarball
use_memory_mapped_buffers=true
neostore.nodestore.db.mapped_memory=3G
neostore.relationshipstore.db.mapped_memory=4G
neostore.propertystore.db.mapped_memory=3G
neostore.propertystore.db.strings.mapped_memory=1000M
neostore.propertystore.db.index.keys.mapped_memory=500M
neostore.propertystore.db.index.mapped_memory=500M
謝謝Vince,你給了我一個關於@QueryResult的好消息! – Lina