与在 neo4j 中创建相比,合并使我的计算非常慢
Merge makes my computation very slow as compared to create in neo4j
我 运行 在我的桌面应用程序中对同一个数据集(包含 20000 行)进行了两个查询。
第一:-
LOAD CSV with headers FROM 'file:///sample.csv' AS row
CREATE (n:MyNode{name:row.source})
第二个:-
LOAD CSV with headers FROM 'file:///sample.csv' AS row
MERGE (n:MyNode{name:row.source})
这里 CREATE 只用了 140 毫秒。而 MERGE 大约需要 90 秒
这大约慢了 600 倍。
我有大约 6000 万行,我需要创建不同的节点。有什么建议可以用来减少执行时间吗?
由于 MERGE 就像一个 MATCH(如果没有任何匹配项则紧随其后的是 CREATE),它受益于索引,如果所涉及的属性不存在索引(类似于未索引的 MATCHes),则会受到影响。
请在 :MyNode(name) 上创建索引(或唯一约束,如果适用),然后重试加载。
我 运行 在我的桌面应用程序中对同一个数据集(包含 20000 行)进行了两个查询。
第一:-
LOAD CSV with headers FROM 'file:///sample.csv' AS row
CREATE (n:MyNode{name:row.source})
第二个:-
LOAD CSV with headers FROM 'file:///sample.csv' AS row
MERGE (n:MyNode{name:row.source})
这里 CREATE 只用了 140 毫秒。而 MERGE 大约需要 90 秒 这大约慢了 600 倍。
我有大约 6000 万行,我需要创建不同的节点。有什么建议可以用来减少执行时间吗?
由于 MERGE 就像一个 MATCH(如果没有任何匹配项则紧随其后的是 CREATE),它受益于索引,如果所涉及的属性不存在索引(类似于未索引的 MATCHes),则会受到影响。
请在 :MyNode(name) 上创建索引(或唯一约束,如果适用),然后重试加载。