我有大量使用cypher创建的关系,并且不断收到以下错误:Connection to server lost. Reconnecting..
增加的内存。运行该查询,neo使用了约37GB的内存,其余的将用于RAM缓存/缓冲区。磁盘空间和CPU使用率似乎还可以。服务器一直在说Connection to server lost. Reconnecting..
说明 匹配(r:Room), (t:线程) 存在(r.unique_room_id)和存在(t.unique_room_id)并且r.unique_room_id = t.unique_room_id 创建(r)-[:发布]->(t);
预期结果将是创建数百万个关系。在下面的图像中,您可以看到如何执行此查询的详细信息。有什么建议么?谢谢! Query plan
答案 0 :(得分:0)
确保服务器已正确配置堆和页面缓存。
您可以使用apoc library批量执行此操作:
假设您在:Thread(unique_room_id)
上有一个索引
call apoc.periodic.iterate('
MATCH (r:Room)
WITH r.unique_room_id as unique_room_id
MATCH (t:Thread) WHERE t.unique_room_id = unique_room_id
RETURN t, r
','CREATE (r)-[:PUBLISHED]->(t)', {batchSize:100000});
请参阅:http://neo4j-contrib.github.io/neo4j-apoc-procedures/3.5/cypher-execution/commit-batching/