多个节点Neo4j

时间:2018-09-28 07:14:09

标签: optimization neo4j graph-databases

我正在对3个与应用程序相同ID连接的表进行查询。但是,此查询运行时间太长,无法获得任何结果。如何优化此查询? Sms和Pcb节点的创建两个边缘的application_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 个答案:

答案 0 :(得分:1)

首先,要获取查询计划,可以使用EXPLAIN代替PROFILE

  • EXPLAIN不运行查询,仅为您提供查询的查询计划
  • PROFILE执行查询,并为您提供查询结果及其查询计划

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

但是您的数据库中似乎有很多这种模式的实例(超过20万),这就是为什么此查询需要花费一些时间(每个模式〜6微秒还不错^^)的原因)