首页 > 解决方案 > 在处理大量数据时修改查询以获得更好的性能

问题描述

我有一个包含很多重复关系的图表,在一个示例数据上,我有一个计算重复边的查询创建了一个以计数为权重的新关系。当我将该查询应用于整个数据集时,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;

此查询有效并且完全符合我的需要,但不适用于大型数据集。有没有办法提高这个查询性能?还是有其他方法可以实现我的目标?

标签: neo4jcypher

解决方案


尝试删除OPTIONAL修饰符。

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


推荐阅读