Neo4j 删除图大数据

Neo4j delete graph big data

我有一个大约 11M 关系的巨大文件。 当我 运行 查询时:Match (n) detach delete n,似乎要花很长时间才能完成。 我做了一些研究,发现我需要删除具有限制的关系,然后使用该查询的节点:

MATCH (n)
 OPTIONAL MATCH (n)-[r]-()
 WITH r LIMIT 200000
 DELETE r
 RETURN count(r) as deletedCount

然而,当我在做一些性能比较时,将删除孔图的总删除时间加起来对我来说似乎不合逻辑。 并且在更改要立即删除的关系的限制值时会发生变化。 (如果我建立 2000 个关系,这与一次建立 20000 个关系是不一样的)

我该如何解决这个问题? 任何帮助将不胜感激

你可以使用apoc.periodic.commit to help you with batching. You must use apoc plugin,它有很多很酷的功能来增强密码。

您可以使用以下密码查询。

call apoc.periodic.commit("
match (node)
with node limit {limit}
DETACH DELETE node
RETURN count(*)
",{limit:10000})

这将运行分批查询,直到第一个match return null,这意味着在这种情况下数据库中不存在任何节点。您可以尝试不同的限制设置,看看哪种效果最好。

希望对您有所帮助