Neo4j 删除图大数据

Mun*_*arr 3 performance time neo4j delete-file

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

MATCH (n)
 OPTIONAL MATCH (n)-[r]-()
 WITH r LIMIT 200000
 DELETE r
 RETURN count(r) as deletedCount
Run Code Online (Sandbox Code Playgroud)

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

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

Tom*_*nič 5

您可以使用apoc.periodic.commit来帮助您进行批处理。你必须使用apoc 插件,它有很多很酷的功能来增强密码。

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

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

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

希望这可以帮助