不用再怀疑了,因为您可以使用 cypher profiler 来查看您的 cypher 查询发生了什么:)
您可以在 neo4j-shell 中使用 cypher,并在其前面加上“profile”关键字(尽管仅适用于 neo4j 1.9 和 2.0)。
您可以在 webadmin 界面中提供的 neo4j-shell 中试用:
profile start n=node(500) match n-[:relation_type]-() return count(*);
我尝试了类似的东西并得到以下输出:
==> ColumnFilter(symKeys=[" INTERNAL_AGGREGATEb12550d5-63c6-41c4-a4b5-86bba011c998"], returnItemNames=["count(*)"], _rows=1, _db_hits=0)
==> EagerAggregation(keys=[], aggregates=["( INTERNAL_AGGREGATEb12550d5-63c6-41c4-a4b5-86bba011c998,CountStar)"], _rows=1, _db_hits=0)
==> TraversalMatcher(trail="(n)-[ UNNAMED6:LIKE WHERE true AND true]->( UNNAMED5)", _rows=25, _db_hits=26)
==> ParameterPipe(_rows=1, _db_hits=0)
这让我认为它在遍历时很重要(以 _db_hits = 0 开头)!