2014-09-02 42 views
0

我想查詢800萬個節點在neo4j數據庫中。我可以輕鬆地完成精確匹配的索引查詢,但有沒有一種高性能的方法來進行聚合?在數百萬個節點上的彙總查詢

MATCH (r:Resident) RETURN r.forename, count(r.forename) ORDER BY count(r.forename) 

此查詢只是坐在那裏,直到我最終重新啓動我的服務器。我已經閱讀了性能指南,並且正在觀看vm_stat,而且它似乎很快就會免費用完。我已經嘗試調整內存/ JVM堆設置以適應各種各樣的事情,但我不確定自己完全知道自己在做什麼;)我有一個8 GB的MacBook Air和一個SSD驅動器,以防建議設置。此外,這裏是我的DB我的統計從WebAdmin的:

10,236,226 nodes 

56,280,161 properties 

10,190,430 relationships 
2 relationship types 

14,535 MB database disk usage 
+0

限制將有所幫助 - 否則需要建立一個完整的名稱列表和計數結果集。 – 2014-09-23 04:05:59

回答

0

我插入8M節點只有1道具,並得到了該查詢到〜20S不改變默認設置(預熱緩存後 - 第一次花了90年代),這是相當於其他數據庫,如postgres(我也測試過)。

有些事情你可以嘗試這樣做:

  • 提高對相應的文件MMIO設置(根據數據/ graph.db /文件大小)中的conf/neo4j.properties大小(在頂部)
  • 增加neo4j.properties節點緩存大小
  • 增加的Neo4j-wrapper.conf堆的init /最大
  • 確保你有足夠的RAM遺留