代码之家  ›  专栏  ›  技术社区  ›  Cassie

多节点匹配查询优化Neo4j

  •  0
  • Cassie  · 技术社区  · 7 年前

    我正在3个表上运行一个查询,这些表与一个应用程序的相同id连接。但是,此查询运行太长,无法获得任何结果。如何优化此查询?对于Sms和Pcb节点,创建两条边的应用程序id应该相同。

     MATCH (pcb:PhoneContactsBook)-[:APP_PCB]->(a:Applications)-[:APP_SMS]->(sms:Sms)
        RETURN distinct a.application_id
    

    为了得到查询计划,我用 LIMIT 200,000 我在1251毫秒内得到1046648分贝的点击率。

    以下是查询计划:

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   logisima    7 年前

    首先,要获得查询计划,可以使用 EXPLAIN 而不是 PROFILE

    • 解释 不要运行查询,只提供查询的查询计划
    • 轮廓 执行查询,并给出查询结果及其查询计划

    我在这里没有看到任何优化,因为您要求数据库提供特定模式的所有实例,并且没有where子句、子语句、聚合。。。

    但看起来 您的数据库中有很多这种模式的实例 (超过200000),这就是为什么这个查询需要一些时间(每个模式大约6微秒是不错的^)