使用75%CPU 80GB Ram时,Neo4j搜索需要+30分钟

时间:2015-03-26 20:37:35

标签: neo4j

Neo4jShell中的查询非常慢,CPU只能达到80%左右并继续运行。我检查了架构:并有索引。电脑有128GB Ram,Neo4j使用75GB RAM。数据库大小为24GB。有大约400万个节点和1.2亿个关系

有没有人知道Neo4j能否快速处理24GB数据的查询?

此查询需要20分钟才能返回

MATCH (o:Foo {rbt:"local-foo"} )-[:val]->(j:Bar )

:schema
Indexes
  ON :Object(text)               ONLINE  
  ON :Foo(rbt)           ONLINE  
  ON :Bar(rbt)         ONLINE  
  ON :Property(prd)        ONLINE  
  ON :PI(rbt) FAILED  

No constraints

来自我的neo4j.properties:

# Default values for the low-level graph engine

neostore.nodestore.db.mapped_memory=2999M
neostore.relationshipstore.db.mapped_memory=15500M
neostore.relationshipgroupstore.db.mapped_memory=800M
neostore.propertystore.db.mapped_memory=390M
neostore.propertystore.db.strings.mapped_memory=330M
neostore.propertystore.db.arrays.mapped_memory=330M

2 个答案:

答案 0 :(得分:1)

这个查询怎么样?

MATCH (o:Foo {rbt:"local-foo"} )
MATCH (o)-[:val]->(j:Bar)

此外,如果您确定所有 j 节点都有:Bar 标签,则可以省略它以改进查询:

MATCH (o:Foo {rbt:"local-foo"} )
MATCH (o)-[:val]->(j)

答案 1 :(得分:0)

与M. Hunger合作,通过修改系统的索引和堆管理来解决问题。在解决问题之后,查询是次要的。