【问题标题】:neo4j performance with 4M nodes and 29M relations具有 4M 节点和 29M 关系的 neo4j 性能
【发布时间】:2014-03-12 14:02:31
【问题描述】:

我有一棵有 80,000 个节点和 4M 叶子的树。叶子通过 29M 关系分配给树节点。事实上,我有大约 4 棵树,叶子被分配到不同的节点,但这并不重要。

经过大约 6 天的工作,我想出了如何在可接受的时间内将如此大量的数据导入 neo4j,并且在很多情况下(csv 导入 neo4j 2.1)neo4j 进程停滞在 100% 并且似乎没有做任何事情.我现在正在使用此工具创建数据库: https://github.com/jexp/batch-import/tree/20 这非常快!

现在我终于得到了我的数据库,并从一个简单的查询开始,比如“有多少叶子有一个特定的节点”:

MATCH (n:Node {id:123})-[:ASSIGNED]-(l:Leaf) 返回计数(l);

我在“id”属性上创建了一个索引,但这个查询仍然需要 52 秒。 似乎关系(没有属性)根本没有被索引...... 有没有办法让它更快?

【问题讨论】:

    标签: performance neo4j cypher relation


    【解决方案1】:

    关系不必被索引。

    您是否创建了这样的索引:

    create index on :Node(id);
    

    我建议您为箭头添加方向,否则您将遵循树上和下的所有关系。

    MATCH (n:Node {id:123})<-[:ASSIGNED]-(l:Leaf) RETURN COUNT(l);
    

    【讨论】:

    • ... 我在 create index 语句中有错字(在实际情况下不是 id)。你的建议让我看起来......第四次!方向提示使查询更快,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多