通过Cypher从所有节点和关系中清除图形的最佳方法是什么?
在http://neo4j.com/docs/stable/query-delete.html#delete-delete-a-node-and-connected-relationships上的例子
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
Run Code Online (Sandbox Code Playgroud)
有说明:
此查询不是用于删除大量数据
那么,以下更好吗?
MATCH ()-[r]-() DELETE r
Run Code Online (Sandbox Code Playgroud)
和
MATCH (n) DELETE n
Run Code Online (Sandbox Code Playgroud)
或者是否有另一种更适合大型图形的方法?
Ste*_*ter 20
正如您所提到的,最简单的方法是停止Neo4j,删除data/graph.db文件夹并重新启动它.
如果使用适当的事务大小来防止内存问题,那么通过Cypher删除大图总是会变慢但仍然可行(记住事务在提交之前首先在内存中建立).通常50-100k原子操作是个好主意.您可以为删除语句添加限制以控制tx大小并报告已删除的节点数.重新运行此语句,直到返回值0:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
WITH n,r LIMIT 50000
DELETE n,r
RETURN count(n) as deletedNodesCount
Run Code Online (Sandbox Code Playgroud)
小智 11
根据这里的官方文件:
MATCH (n)
DETACH DELETE n
Run Code Online (Sandbox Code Playgroud)
但它也说This query isn’t for deleting large amounts of data.所以最好使用限制.
match (n)
with n limit 10000
DETACH DELETE n;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19174 次 |
| 最近记录: |