有人可以解释或提供链接,以便我们可以了解profile命令并了解Cypher查询的执行计划,以实现优化需求并了解Cypher的工作方式。

例如,我创建了以下Neo4j(2.0版)示例数据库。

create (ayan:Person{name:"Ayan",age:25}),
(dixi:Person{name:"Dixi",age:26}),
(thaggu:Person{name:"Thaggu",age:27}),
(santosh:Person{name:"Santosh",age:28}),
(ayan)-[:FRIEND]-(santosh),
(ayan)-[:FRIEND]-(dixi),
(thaggu)-[:FRIEND]-(dixi);

现在,当我运行以下简单查询时,
profile match n:Person, n-[:FRIEND]-m where n.name="Ayan" return m;

我得到以下结果,但是我无法理解结果下方的解释。
请帮忙。
+--------------------------------+
| m                              |
+--------------------------------+
| Node[4]{age:28,name:"Santosh"} |
| Node[2]{age:26,name:"Dixi"}    |
+--------------------------------+
2 rows



==> ColumnFilter(symKeys=["n", "m", "  UNNAMED17"], returnItemNames=["m"], _rows=2, _db_hits=0)

==> PatternMatch(g="(m)-['  UNNAMED17']-(n)", _rows=2, _db_hits=0)

==>   Filter(pred="(Property == Literal(Ayan) AND hasLabel(n: Person))", _rows=1, _db_hits=4)

==>     NodeByLabel(label="Person", identifier="n", _rows=4, _db_hits=0)

最佳答案

该个人资料信息目前尚未完成,因此尚未记录在案。但是,关键数字是_db_hits,由于价格昂贵,因此不应过高。

关于neo4j - 了解Neo4j Cypher Profile关键字和执行计划,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17760627/

10-12 21:48