我开始为一个程序测试 Neo4j,但我遇到了一些性能问题。正如标题中提到的,Neo4j 是直接嵌入在 java 代码中的。
我的图表包含大约 400 万个节点和数亿个关系。我的测试只是发送一个查询,计算一个节点的入站关系数。
该程序使用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
根据这个回复,我知道 Neo4j 的查询花费了 1 毫秒,但是当我打印一些日志消息时,我可以看到它实际上花费了 917 毫秒。
我猜 1 毫秒等于找到索引对象“美国”所需的时间,这意味着 Neo4j 需要大约 916 毫秒来完成其余部分,比如计算关系的数量。在这种情况下,如何获得此查询的吸气剂性能?
提前致谢!