match (m:Server)-[r]-(n:Middleware)-[r1]-(o:OperatingSystem),
(y:DeploymentUnit{name:n.name+m.name}) merge(y)-[:STRATEGIC_RUNS_ON]->(o) merge(y)<-[:STRATEGIC_OUT_RUNS_ON]-(o)我在运行这个查询,但是complete.Is花了一个多小时,我可以优化这个查询。服务器节点:10035,中间件节点:2334,OperatingSystem节点:43,DeploymentUnit节点:5014。
提前感谢
发布于 2020-06-15 15:14:09
您可以通过以下方式改进此查询:
在DeploymentUnit标签的名称属性上创建索引,用于匹配
CREATE INDEX FOR (n:DeploymentUnit) ON (n.name)使用避免查询中的笛卡儿积
MATCH (m:Server)-[r]-(n:Middleware)-[r1]-(o:OperatingSystem)
WITH n.name+m.name as du_name, o
MATCH (y:DeploymentUnit{name: du_name})
MERGE (y)-[:STRATEGIC_RUNS_ON]->(o)
MERGE (y)<-[:STRATEGIC_OUT_RUNS_ON]-(o)https://stackoverflow.com/questions/62389717
复制相似问题