在bolt下获取Neo4j查询的响应时间

时间:2017-01-22 18:57:28

标签: python-3.x neo4j

我一直在寻找答案,但我找不到它。我想找出使用​​bolt驱动程序的10个不同查询的响应时间。我不想为这10个查询编写很多代码,所以我的问题是它是否可以通过Neo4j Browser或Python?

Neo4j浏览器使用哪种协议?通过使用“PROFILE”,我可以获得所需的所有信息,但看起来REST Api用于此目的。如果单击代码选项卡,则有Method = Post,URL = ...等。是否可以将其更改为Bolt协议?这个解决方案的优点是,我甚至可以比较Bolt和REST API。

另一种方法是为此编写一个简短的Python脚本。优点是,我可以自动完成这项任务。但是在Neo4j浏览器中,我得到了响应时间(在GUI中以及生成的JSON中)但是如果我在Python + Bolt中执行Cypher查询,我就会得到结果。是否有可能像响应时间一样检索元数据?

1 个答案:

答案 0 :(得分:1)

默认情况下,在neo4j 3.0+中使用螺栓驱动程序。您可以通过打开浏览器中的设置选项卡找到它:

enter image description here

neo4j 3.1+的python驱动程序提供了一些时序统计信息:http://neo4j.com/docs/api/python-driver/beta/session.html#neo4j.v1.summary.ResultSummary.result_available_after

例如:

from neo4j.v1 import GraphDatabase, basic_auth

uri = "bolt://localhost:7687"
auth_token = basic_auth("neo4j", "password")
driver = GraphDatabase.driver(uri, auth=auth_token)

session = driver.session()

q = "CREATE (n:Person) RETURN n"

result = session.run(q).consume()
print(result.result_available_after)