在Neo4j查询中“开始流式传输”和“已完成”之间有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Neo4j查询中“开始流式传输”和“已完成”之间有什么区别?相关的知识,希望对你有一定的参考价值。

在Neo4j浏览器中,当我描述一个查询时,我得到:“在129毫秒后开始流式传输162063条记录并在13793毫秒后完成。”结果都是在129ms之后收集的,但是将它们输出到浏览器需要13793ms?

此外,当我在Cypher Shell中运行查询时,我得到“在9毫秒后可用的162063行,在另一个8673毫秒后消耗”。这是否意味着所有数据都是在9ms后收集的,但将它输出到shell需要8673ms?

答案

当流式传输记录(或行)时,neo4j服务器会在每条记录可用时立即发送 - 而不是等待所有记录“聚集”,然后立即发送所有记录。

因此,例如,“在129 ms之后开始流式传输162063记录并在13793 ms之后完成”。表示服务器在129 ms后流式传输第一条记录,在13793 ms之后流式传输最后一条记录。 (顺便说一下,这是每毫秒差不多12条记录的速度。)

[EDITED]

消耗流数据的速率会影响数据输入流的速率。

以上是关于在Neo4j查询中“开始流式传输”和“已完成”之间有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

Neo4j cypher查询获取起始节点和结束节点之间的所有节点

Neo4j 中的邻域聚合查询

如何优化Neo4J Cypher查询?

Neo4j:返回并行查询结果

快速入门知识图谱 - Neo4J Cypher查询语言教程

快速入门知识图谱 - Neo4J Cypher查询语言教程