在大型加载过程中快速创建Neo4j关系的最佳实践?

50pmv0ei  于 2022-10-01  发布在  其他
关注(0)|答案(1)|浏览(142)

我正在编写一个ETL流程,每次从头开始创建一个包含大约350k个节点和800k个关系的图。使用Load CSV创建节点的速度非常快。但是,无论我使用什么方法,创建关系似乎都很慢(需要几个小时),当属性被写入关系时,创建关系的速度会变得相当慢。节点上有复合索引,没有为关系声明索引。

建立关系的最佳实践是什么?

eqqqjvef

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;

还要检查内存配置中的堆和页面缓存。

相关问题