我在Neo4j中创建了一个大型图表,图表中有一个通过1100万个关系连接的空节点需要删除。我知道,如果我只删除该节点,我将留下所有挂起的关系,但我尝试删除这些关系时失败。我尝试了以下CYPHER命令,但它们挂起且无法完成:
MATCH (n:Label {uid: ''}) DETACH DELETE n;
以及
MATCH (n:Label {uid: ''})-[r]-() DELETE r;
我假设内存中没有足够的资源来加载1100万个关系子图,以便分离和删除节点,那么有没有办法循环这些关系以降低所需的系统资源呢?
3条答案
按热度按时间lf5gs5x21#
1)您可以使用apoc库中的
apoc.periodic.commit
函数:2)您可以删除节点,然后使用
apoc.create.node
函数重新创建节点:b5buobof2#
您可以成批删除关系,然后再删除节点
如果你连续运行,你将以小批量删除关系。玩限制的数量,看看你的运行系统将容忍资源明智。
sxpgvts33#
如果您使用的是Neo4j 4.0或更高版本,那么这是最好的方法: