原因:
MATCH (n)
DETACH DELETE n;
当我们运行上述语句时,出现报错Neo.TransientError.General.MemoryPoolOutofMemoryError,报错详情如下图:
当我单个删除节点时,当某个节点有大量的数据,导致这个节点比较大,无法通过寻常删除节点的语句删除。就比如Disease这个节点就无法删除,也会报这个错误Neo.TransientError.General.MemoryPoolOutofMemoryError
# 删除Disease标签的所有节点和关系
match (n:Disease) detach delete n
解决方法:
1、首先,先说下我的方法,我是通过分批次删除来解决的。
MATCH (n:Test_items) DETACH DELETE n
RETURN count(n) AS deleted_count#分批次删除节点
MATCH ()-[r:relation]-() WITH r LIMIT 1000000 DELETE r RETURN count(*);#分批次删除关系
2、以下这个方法对我不适用,仅供参考。
在windows环境下,在cmd窗口运行neo4j-import命令前,先设置一个环境变量,
比如设置为4G set HEAP_SIZE=4096m
修改 neo4j.conf 中的配置 (docker 中默认为512m)
dbms.memory.heap.initial_size=2048m
dbms.memory.heap.max_size=4096m