我正在编写一个ETL流程,每次从头开始创建一个包含大约350k个节点和800k个关系的图。使用Load CSV创建节点的速度非常快。但是,无论我使用什么方法,创建关系似乎都很慢(需要几个小时),当属性被写入关系时,创建关系的速度会变得相当慢。节点上有复合索引,没有为关系声明索引。
建立关系的最佳实践是什么?
eqqqjvef1#
您可以在关系创建语句上使用EXPLAIN来查看是否实际使用了索引。
我猜你是在批量制造你的新产品吧?否则,它可能会消耗太多内存,使TX无法(快速)完成。
LOAD CSV WITH HEADERS FROM "url" AS row call { with row MATCH (s:Node {id1:row.source1, id2:row.source2}) MATCH (t:Node {id1:row.target1, id2:row.target2}) CREATE (s)-[r:REL]->(t) SET r.prop1 = row.prop1 } in transactions of 50000 rows;
还要检查内存配置中的堆和页面缓存。
1条答案
按热度按时间eqqqjvef1#
您可以在关系创建语句上使用EXPLAIN来查看是否实际使用了索引。
我猜你是在批量制造你的新产品吧?否则,它可能会消耗太多内存,使TX无法(快速)完成。
还要检查内存配置中的堆和页面缓存。