neo4j - 在处理大量数据时修改查询以获得更好的性能
问题描述
我有一个包含很多重复关系的图表,在一个示例数据上,我有一个计算重复边的查询创建了一个以计数为权重的新关系。当我将该查询应用于整个数据集时,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;
此查询有效并且完全符合我的需要,但不适用于大型数据集。有没有办法提高这个查询性能?还是有其他方法可以实现我的目标?
解决方案
尝试删除OPTIONAL
修饰符。
对于您的用例,匹配不存在的关系是没有意义的,并且您不应该尝试与null
端节点创建关系。
推荐阅读
- python - 使用 mocker.patch 重命名 pytesting 文件
- amazon-web-services - AWS-SAM:如何重新使用 Route53 域而不是重新创建它?
- asp.net-mvc - 在视觉工作室工作时,我们创建 Meta 类,为什么?
- javascript - 为什么即使我刚刚推送了一个新数组,嵌套数组的长度仍返回未定义?
- java - 如何在 PDF 文件的框中选择文本?
- c++ - 如何将包含一个数字的字符串转换为 C++ 中的向量,其中所有数字都是向量的元素
- c# - 如何在代码 C# .net 5 中获取当前使用的 openapi 版本
- r - 按组在多列上汇总唯一值
- linux - 使用 at 命令(预定脚本)运行 bash 脚本不起作用
- vue.js - 将 Formstack 嵌入 Vuejs