重启数据库后,基本cypher查询的Neo4j性能

时间:2014-03-19 18:13:42

标签: neo4j

我有一个基本的neo4j数据库,有10个节点(没有关系)。我正在运行嵌入模式并启动服务器/ webadmin,如下所示:

GraphDatabaseService graphDb;
graphDb = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder("/path/to/data/directory").newGraphDatabase();
WrappingNeoServer srv = new WrappingNeoServer((GraphDatabaseAPI) graphDb);
srv.start();

创建节点后,查询性能很好,但是当我重新启动服务器时,查询基本密码查询的性能会变慢。以下查询大约需要1-3秒:

MATCH (n) RETURN count(n);

在重新启动之前(创建节点之后),此查询小于100毫秒。

以下是我正在使用的数据目录的链接:https://drive.google.com/file/d/0B1pENwDgk7SQTFkxU1BGd2poeUU/edit?usp=sharing

我正在运行2.0.1版。

什么可能导致这种缓慢的表现?

1 个答案:

答案 0 :(得分:3)

  1. 必须初始化数据库,设置内存映射。
  2. 必须从磁盘加载节点。
  3. Cypher查询解析器必须首先建立它的规则。
  4. 您的查询必须经过解析构建并放入缓存中。
  5. 更多
  6. 这就是为什么永远不要相信前100-1000个查询进行性能测量。