如何在不暂停数据库的情况下删除Neo4J Cypher中的一百万个关系?

如何在不暂停数据库的情况下删除Neo4J Cypher中的一百万个关系?,neo4j,cypher,Neo4j,Cypher,我提出以下要求: CALL apoc.index.relationships('TO','context:(1a2fbd10-7a50-11ea-bb71-25dd29c6e321)') yield rel with distinct rel delete rel; 问题是当我这么做的时候 CALL apoc.index.relationships('TO','context:(1a2fbd10-7a50-11ea-bb71-25dd29c6e321)') yield rel wit

我提出以下要求:

CALL apoc.index.relationships('TO','context:(1a2fbd10-7a50-11ea-bb71-25dd29c6e321)') 
yield rel 
with distinct rel 
delete rel;
问题是当我这么做的时候

CALL apoc.index.relationships('TO','context:(1a2fbd10-7a50-11ea-bb71-25dd29c6e321)') 
yield rel 
with distinct rel 
return count(rel);
这表明我有大约90万段感情

因此,第一个查询的执行时间太长。当它是事务的一部分时,会暂停数据库并使用过多内存


Neo4J 3.3.9(或3.5)中是否有一个过程允许我成批执行这种长请求,这样我就不会使数据库过载?

您可能想看看
apoc.periodic.iterate
过程,它允许您对查询返回的批量数据执行操作。
或者,在不使用APOC过程的情况下(现在已弃用)查找所有必需的关系可能会更快一些。

Super!这似乎奏效了。我必须使用APOC,因为所有其他方法都比较慢。我的关系是用APOC建立索引的,所以他们查询速度很快。