首页 > 解决方案 > 如何提高我在 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 的性能?

我为我糟糕的英语道歉,并提前感谢您的帮助。

标签: neo4jcountcypher

解决方案


推荐阅读