【发布时间】:2015-08-15 17:17:00
【问题描述】:
我创建了这个 Neo4j 图的简单示例:
CREATE (n1:A), (n2:B), (n2:C), (n4:D)
Added 4 labels, created 4 nodes
MATCH(a:A), (b:B), (c:C), (d:D)
CREATE (d)<-[r3:r3]-(a)-[r1:r1]->(b)-[r2:r2]->(c)
现在我在这张图上做了这个查询:
MATCH (c:C)<-[r3]-(b:B)<-[r2]-(a:A)-[r1]->(d:D)
RETURN c,d
我查询了 13 次,得到的执行时间不同:
1. 72 ms
2. 68 ms
3. 81 ms
4. 25 ms
5. 44 ms
6. 22 ms
7. 24 ms
8. 53 ms
9. 45 ms
10. 67 ms
11. 86 ms
12. 83 ms
13. 90 ms
我在 Neo4j 中搜索效率低下的查询,我知道当有向图深入增长时,Neo4j 查询会失去效率。 不明白为什么第四次、第六次、第七次执行时间都是25ms左右。 最后,执行时间可靠吗?这样的查询是不是有点低效?
【问题讨论】:
-
您的查询是跨整个图的全局图查询,请尝试在查询前使用 PROFILE 来查看它们接触了多少数据。