neo4j性能与4M节点和29M关系

时间:2014-03-12 14:02:31

标签: performance neo4j cypher relation

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

不必将关系编入索引。

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

create index on :Node(id);

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

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