如何在删除所有匹配节点之前优化多个匹配?

问题描述 投票:0回答:1

我有一个图表,其中位置是根节点,在该根节点下我有云资源。这些位置通过一对由双向 HAS_REMOTECONNECTION 边缘连接的网关与其他位置连接。

如何优化以下查询,我试图删除某个位置下的所有内容(包括位置本身)?

MATCH (loc:location{resource_id:'some_id', tenant_id:'some_tenant_id'})
    OPTIONAL MATCH (loc)-[:LOCATION_HAS_DE]->(deplenvs:(cluster|node|vpc))
    OPTIONAL MATCH (deplenvs)-[:DE_HAS_GW]->(gateways)
    OPTIONAL MATCH (deplenvs)-[:DE_HAS_PART]->(parts)-[*]->(extras)
RETURN loc, deplenvs, gateways, parts, extras
neo4j cypher
1个回答
0
投票

优化的起点是确保您在位置节点的resource_id和tenant_id属性上设置了复合索引。这将使您能够快速访问您的位置节点。

从那里你只是指针跳跃,这大约是你能得到的最优化的。

© www.soinside.com 2019 - 2024. All rights reserved.