3 Cypher查询的差异

时间:2015-02-23 07:36:16

标签: performance neo4j cypher

我在Cypher中有三个类似的查询产生不同的结果。

Q1 - 平均返回结果约为110毫秒

MATCH (a:person {pid:'48'})-[:FRIEND*2..2]->(fof) WHERE NOT (a)-[:FRIEND]->(fof) RETURN fof.pid

Q2 - 平均返回结果约70毫秒

MATCH (a:person {pid:'48'})-[:FRIEND]->(f) WITH a, COLLECT(f) as friends MATCH (a)-[:FRIEND]->(:person)-[:FRIEND]->(fof) WHERE NOT (fof IN friends) RETURN fof.pid

问题3 - 在相同的时间内没有返回结果

MATCH (a:person {pid:'48'})-[:FRIEND]->(:person)-[:FRIEND]->(fof:person) WHERE NOT (a)-[:FRIEND]->(fof) RETURN fof.pid

这里有什么区别?

编辑:

版本 - Neo4j 2.2.0-M03,嵌入式数据库

0 个答案:

没有答案