任何人都可以让我知道这个查询有什么问题
MATCH(I1:接口),(I2:接口)WHERE I1.IfIPAddress =' 172.16.42.9'和I2.IfIPAddress =' 172.16.42.10' WITH Count(I1)+ Count(I2)AS iCount,I1,I2
在哪里iCount = 2
返回iCount;
其中有5000个接口节点。 为什么执行查询需要花费大量时间,但仍然无法执行?
答案 0 :(得分:1)
如果您只是想测试两个接口实例是否存在,您可以这样做:
MATCH (i1:Interface {IfIPAddress:'172.16.42.9'}), (i2:Interface {IfIPAddress:'172.16.42.10'})
RETURN i1, i2;
如果两者都存在,则返回单行(带有i1和i2节点),否则返回0行。
此外,要加速这些查询,您应该创建索引或唯一性约束(如果没有两个Interface节点可以具有相同的IfIPAddress值)。
创建索引:
CREATE INDEX ON :Interface(IfIPAddress);
要创建唯一性约束(它也会自动为您创建上述索引):
CREATE CONSTRAINT ON (i:Interface)
ASSERT i.IfIPAddress IS UNIQUE;