我正在对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的总数据库命中率。
这是查询计划:
答案 0 :(得分:1)
首先,要获取查询计划,可以使用EXPLAIN
代替PROFILE
:
EXPLAIN
不运行查询,仅为您提供查询的查询计划PROFILE
执行查询,并为您提供查询结果及其查询计划我在这里看不到任何优化,因为您正在要求数据库为您提供特定模式的所有实例,并且没有where子句,没有子语句,没有聚合...
但是您的数据库中似乎有很多这种模式的实例(超过20万),这就是为什么此查询需要花费一些时间(每个模式〜6微秒还不错^^)的原因)