Neo4j 数百万节点上的聚合查询
我试图在neo4j数据库中查询约800万个节点。我可以很容易地查询出精确匹配的索引,但是有没有一种高效的方法来进行聚合呢Neo4j 数百万节点上的聚合查询,neo4j,Neo4j,我试图在neo4j数据库中查询约800万个节点。我可以很容易地查询出精确匹配的索引,但是有没有一种高效的方法来进行聚合呢 MATCH (r:Resident) RETURN r.forename, count(r.forename) ORDER BY count(r.forename) 在我最终重新启动服务器之前,这个查询一直存在。我已经阅读了性能指南,正在观看vm_stat,它的免费页面似乎很快就用完了。我尝试过根据各种情况调整内存/JVM堆设置,但我不确定自己是否完全知道自己在做什么;)我
MATCH (r:Resident) RETURN r.forename, count(r.forename) ORDER BY count(r.forename)
在我最终重新启动服务器之前,这个查询一直存在。我已经阅读了性能指南,正在观看vm_stat,它的免费页面似乎很快就用完了。我尝试过根据各种情况调整内存/JVM堆设置,但我不确定自己是否完全知道自己在做什么;)我有一个8 GB的MacBook Air,带有SSD驱动器,以防有助于建议设置。此外,以下是我在webadmin数据库上的统计信息:
10,236,226 nodes
56,280,161 properties
10,190,430 relationships
2 relationship types
14,535 MB database disk usage
我用一个道具插入了8M个节点,并在不更改默认设置的情况下(在预热缓存后——第一次用了90秒)将查询时间缩短到20秒,这与其他数据库(如postgres)相当(我也测试过) 您可以尝试做一些事情:
- 提高conf/neo4j.properties(顶部)中相应文件mmio设置的大小(根据data/graph.db/中的文件大小)
- 增加neo4j.properties中的节点缓存大小
- 增加neo4j-wrapper.conf中的heap init/max
- 确保你有足够的剩余内存