我有以下密码查询:
PROFILE MATCH (p:Profile) MATCH (v:Vacancy:Decision {id: 17210})
WHERE NOT exists((v)<-[:POSSIBLE_PROFILE]-(p))
RETURN p, v;
我的测试数据库中只有 5000 个配置文件。
计划:
我担心绿色矩形中突出显示的数据库命中数。您能告诉我如何优化这个查询吗?
您的查询会在所有 :Profile 节点和 :Vacency:Decision 节点之间创建笛卡尔积,然后从每个节点进行扩展,检查它们是否未连接。
匹配 v 中可能的配置文件,然后匹配所有不是这些的 :Profile 节点可能会更有效。像这样的东西:
PROFILE
MATCH (v:Vacancy:Decision {id: 17210})<-[:POSSIBLE_PROFILE]-(possible)
WITH v, collect(possible) as toExclude
MATCH (p:Profile)
WHERE NOT p IN toExclude
RETURN p, v;