我正在3个表上运行查询,这3个表与应用程序的id相同。但是,此查询运行的时间太长,无法获得任何结果。如何优化此查询?用于创建两个边的application_id对于Sms和Pcb节点应该是相同的。
这是查询本身:
MATCH (pcb:PhoneContactsBook)-[:APP_PCB]->(a:Applications)-[:APP_SMS]->(sms:Sms)
RETURN distinct a.application_id为了得到查询计划,我用LIMIT 200,000运行这个查询,我在1251ms内总共得到了1046648次db命中。
以下是查询计划:

发布于 2018-09-28 20:22:12
首先,要获得查询计划,您可以使用EXPLAIN而不是PROFILE:
EXPLAIN不运行查询,只给你执行查询的queryPROFILE的查询计划,并给你查询的结果+它的查询计划我在这里看不到任何优化,因为您正在请求数据库为您提供特定模式的所有实例,并且没有where子句、子语句、聚合……
但是看起来在你的数据库中有很多这种模式的实例(超过200000),这就是为什么这个查询需要花费一些时间(每个模式大约6微秒已经不错^^)。
https://stackoverflow.com/questions/52550233
复制相似问题