neo4j中查询的执行时间

时间:2016-05-17 13:31:28

标签: neo4j

我刚刚开始评估Neo4j如何替代postgres用于专门为复杂生物数据的集成和分析而构建的数据仓库。 我已经将一些表导入Neo4j并开始对一些相关查询的执行时间进行基准测试。 我想知道测量它们的最佳方法是什么。我使用neo4j-shell工具,但我不确定这是最好的方法....也许使用Java API或Traversal框架实现一个小客户端更好? 以及衡量"真实"使用neo4j-shell查询的执行时间(不是打印结果的时间!!)?使用PROFILE? 谢谢!

2 个答案:

答案 0 :(得分:0)

您好,欢迎来到图形数据库的现存世界。

当您键入每个cypher语句时,Neo4J浏览器控制台可以打印执行时间。 据我所知,这是执行时间,而不是使用可视化插件显示结果所花费的时间。

如果您对此不满意并想获得更准确的结果/可靠的结果,我可以考虑两种选择。

  1. 使用Java API创建Java存储过程(Neo4J 3.0和 上面的)或extend the server的非托管扩展。这是 much更多faster,因为它不受Cypher的限制 查询计划程序(虽然这已经显着改善了3.0)
  2. 在与Neo4J相同的VM / Machine上创建一个简单的API服务器 让它监控从请求到数据库所需的时间 回复并将其返回给您。我有类似的东西在我的NodeJS服务器中记录api请求时间,所以我可以优化查询。鉴于新的高性能BOLT接口,这不是一个糟糕的选择。虽然选项1仍然应该更快。

答案 1 :(得分:0)

Neo4j企业版允许您启用所有已发送查询的日志记录。查看dbms.logs.query.*conf/neo4j.conf开头的所有配置选项。

只需修改为dbms.logs.query.enabled=true

44

请注意,对于较旧(又名2.x)版本的Neo4j,配置选项有不同的命名约定。