neo4j - 如何提高我在 Neo4j 中的 count() 查询的性能?
问题描述
如果有人帮助我,请提前感谢。
- 地位 -
我在 Neo4j 4.1.9 社区版中有 1.5M 文档节点、4.6M 关键字节点和它们之间的 242M 关系,并且所有属性都被索引。
文档节点在 2021-05-01 和 2021-05-31 之间创建了日期属性。
Neo4j 数据库使用了大约 9G 的磁盘大小,所以我为 neo4j 分配了 12G 的 JVM 堆(vm 的总内存大小为 16G)。
- 问题 -
我的查询是获取文档的 100 个关键字及其计数。
MATCH (d:Document)-->(k:Keyword)
WHERE DATE('2021-05-01') <= d.created <= DATE('2021-05-15')
RETURN k.name, COUNT(k) AS c
LIMIT 100
这个查询大约需要 200 秒,就像 Neo4j 浏览器中的以下消息一样。
2 毫秒后开始流式传输 100 条记录,并在 201559 毫秒后完成。
-- 疑问 --
这是我的 Cypher 查询的问题吗?
如何提高 Neo4j 的性能?
我为我糟糕的英语道歉,并提前感谢您的帮助。
解决方案
推荐阅读
- python - IndexError:尝试将数据插入到 sqlite3 数据库时,位置参数元组的替换索引 2 超出范围
- python - 如何在乌龟的文本组中使用不同的颜色
- spring-boot - 使用 Jooq 配置 2 DataSource 的最佳实践
- jquery - 防止剑道详细信息模板中的重复
- autodesk-forge - 使用动态文件名的 Revit Design 自动化控制打开流程
- java - 声明类型为 T 的新对象
- razor-pages - 如何从 BS“selectpicker”更新缓存的列表/值(使用 c# MVC)
- django-forms - 使用 Django 表单集传递相关字段
- sql - 如何按没有聚合的列分组?
- vue.js - Vue.js 样式绑定不更新样式变量更改的 dom