处理大量数据时,修改查询以获得更好的性能

时间:2019-03-25 10:44:28

标签: neo4j cypher

我有一个具有很多重复关系的图,在一个样本数据上,我有一个查询,该查询对重复边缘进行计数,从而创建了一个新的关系,其计数作为权重。当我将该查询应用于整个数据集时,Neo4j崩溃了。

OPTIONAL MATCH (u:Disease)-[r:HAS_CHILD]->(o:Disease) 
WITH u,o,count(r) AS count 
CREATE (u)-[r:HAS_CHILD{weight:count}]->(o) 
RETURN u,r,o;

此查询可以正常工作并满足我的需要,但不适用于大型数据集。有没有办法改善这种查询性能?还是有另一种方法可以实现我的目标?

1 个答案:

答案 0 :(得分:0)

尝试删除OPTIONAL修饰符。

对于您的用例,匹配不存在的关系是没有意义的,并且您不应尝试与null终端节点创建关系。