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
答案 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合作,通过修改系统的索引和堆管理来解决问题。在解决问题之后,查询是次要的。