3
我有大量高度連接的節點,有時我想從數據庫中刪除。通過一對夫婦遍歷,我風與節點列表,我想刪除:刪除Neo4j中的大量節點時出現GC OutOfMemory錯誤
for (Node nodeToDelete : nodesToDelete)
{
for (Relationship rel : nodeToDelete.getRelationships())
{
rel.delete();
}
nodeToDelete.delete();
}
的問題是,無論我怎麼設置大型堆我,我不斷收到: java.lang.OutOfMemoryError:超出GC開銷限制
刪除大量節點列表的最佳方法是什麼?我知道我必須在實際刪除它們之前先刪除它們之間的關係 - 我逐步執行代碼,並且它似乎在刪除關係時失敗。有刪除節點比我有更好的功能?一切都被封裝在一個非常重要的事務中,因爲這個刪除的任何部分都不允許失敗 - 這可能是一個問題嗎?
謝謝!
你不需要根for循環結尾處的tx.success(); tx.finish()部分嗎? – ulkas
是的,我假設他會在上面提供的那部分代碼中注入這些代碼,IE會保留他已有的'finish()'。 – Nicholas
如何使用Cypher進行這種配料?我有一個擁有數百萬節點的9 GB數據庫,我想刪除它的一個主要部分(但不是全部)。然而,即使有一個'MATCH({x:'something'}),DETACH DELETE x'也會拋出'OutOfMemoryError',即使使用了'-Xmx4g''''xmx10g'! (總內存爲16 GB) –