我是新手,我正在尝试合并两个节点,如下所述:
在CREATE SET上匹配(n:node2)合并(p:node1{p.id:n.id})在匹配集p.Column1=n.Column1,p.Column2=n.Column2,p.Column3=n.Column3,p.Column4=n.Column4,p.Column5=n.Column5,p.Column6=n.Column6,p.Column7=n.Column7上,p.Column1=n.Column1,p.Column2=n.Column2,p.Column3=n.Column3,p.Column5=n.Column5,p.Column6=n.Column6,p.Column7=n.Column7;
节点1包含具有8个属性的200万个节点,节点2包含具有8个属性的184000个节点。
我尝试将node2记录与node1合并,但此合并无休止地运行。有没有办法在更短的时间内运行这个合并命令?
2条答案
按热度按时间ars1skjm1#
当node1中不存在node2.id时,您正在将node2复制到node1中,并在node2中找到node1时更新node1中的列值(属性)。简而言之,您需要找到node1中没有找到的node2,然后执行合并。
如果执行时间仍然很长,则安装APOC功能并在下面运行。它将以10K为单位进行批量合并。
sqyvllje2#
为了加快
MERGE
的速度,您应该在node1
标签节点上为键id
创建一个索引。就像这样:其次,您的查询可以简化一点,而不是像这样手动设置
ON CREATE
和ON MERGE
中的每个属性:您可以简单地执行以下操作: