我开始测试Neo4j的一个程序,我面临一些性能问题。如标题所述,Neo4j直接嵌入在Java代码中。使用嵌入式Java API计算性能Neo4j
我的图包含大约4百万个节点和数亿个关系。我的测试只是发送一个查询来统计一个节点入站关系的数量。
该程序使用ExecutionEngine执行程序发送以下查询:
start n=node:node_auto_index(id="United States") match s-[:QUOTES]->n return count(s)
通过简单地增加一些版画,我可以看到多少时间,这个查询了这通常是约900毫秒这是很多。
最令我惊讶的是,我收到了一个“查询执行时间”的响应,这实际上是不同的。
例如查询返回:
+----------+
| count(n) |
+----------+
| 427738 |
+----------+
1 row
1 ms
根据这种反应,我undertand是Neo4j的花为1ms的查询,但是当我打印了一些日志消息,我可以看到,它实际上花了917ms。
我想1ms等于找到索引对象“美国”所需的时间,这意味着Neo4j需要大约916ms的时间,比如计算关系的数量。在这种情况下,如何获得此查询的getter性能?
在此先感谢!
您可以在创建时在节点上存储rels的数量,或者在添加/删除关系时更新它。 – 2013-02-20 07:10:20