Neo4j Cypher查询数据库点击优化

sq1bmfud  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(97)

我有以下Cypher查询:

PROFILE MATCH (p:Profile)  MATCH (v:Vacancy:Decision {id: 17210})
WHERE NOT exists((v)<-[:POSSIBLE_PROFILE]-(p))
RETURN p, v;

而我的测试数据库里只有5000个配置文件
计划:

我关心的是绿色矩形中突出显示的DB命中数。你能告诉我如何优化这个查询吗?

qco9c6ql

qco9c6ql1#

您的查询在all:Profile节点和:Vacency:Decision节点之间创建了一个carbohydrate产品,然后从它们中的每一个展开,检查它们是否未连接。
匹配来自v的可能的profile,然后匹配所有不是这些的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;

相关问题