【问题标题】:Py2neo slow to request all relationshipsPy2neo 请求所有关系的速度很慢
【发布时间】:2021-03-07 10:31:45
【问题描述】:

我想使用密码查询MATCH ()-[r]-() RETURN r 列出我的大约 20000 条边图中的所有关系。对于每个关系,我想获取关系类型、属性、源节点 ID、目标节点 ID。

当我在 neo4j 客户端界面上运行此查询时,结果会在几秒钟内显示得非常快。

但是,当我使用带有Graph.run("MATCH ()-[r]-() RETURN r") 的 py2neo 调用此查询时,仅循环结果需要很长时间,无需任何处理。

你知道这是为什么吗?

【问题讨论】:

    标签: neo4j cypher py2neo


    【解决方案1】:

    如果您尚未升级到最新版本,请升级。在上一个补丁中,为读取结果添加了一些显着的性能改进。

    【讨论】:

    • 更新后确实变快了谢谢。但是,它仍然比在客户端界面中慢得多。你知道在 python 中进行快速密码查询的方法吗?
    • 能否说明最新版本的版本?
    【解决方案2】:

    您的查询实际上是在做额外的工作。因为您的关系不是在模式中定向的,所以它为每个关系返回两次,只是开始和结束节点翻转(请记住,路径由有序节点组成,因此翻转顺序后,每对将获得两条不同的路径)。

    如果您添加方向,您的查询应该会更快一些(返回的数据更少):

    Graph.run("MATCH ()-[r]->() RETURN r")
    

    此外,Neo4j 浏览器限制了结果(默认情况下,图形结果视图有 300 个节点,我认为表格或文本结果视图有 1000 个结果)。因此,根据总结果,Neo4j 浏览器可能会运行得更快,因为它没有处理和返回所有结果。

    【讨论】:

      猜你喜欢
      • 2017-10-11
      • 2013-01-15
      • 2017-04-26
      • 2017-07-12
      • 1970-01-01
      • 2017-01-13
      • 2018-12-06
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多