You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Neo4j查询中"started streaming"与"completed"的区别及相关疑问

Neo4j查询状态与时间含义详解

我来帮你理清Neo4j查询里这几个关键状态和时间的含义,搞懂这些能帮你更好地排查查询性能问题:

一、"started streaming" 和 "completed" 的核心区别

这两个状态标记的是查询生命周期里的不同阶段:

  • started streaming:这个节点意味着Neo4j已经完成了查询的核心计算逻辑,开始向客户端(浏览器、Cypher Shell或其他驱动)传输第一批结果数据。此时数据库已经完成了所有结果的计算工作(大部分场景下),接下来的工作就是把数据流式发送给客户端。简单说就是"计算完了,开始给你发数据了"。
  • completed:这个标记代表整个查询流程彻底结束——不仅数据库已经把所有结果都发送完毕,客户端也已经处理完这些数据(比如浏览器渲染完所有结果、Shell输出完所有行)。这是从你发起查询到所有结果完全可用的整个周期的终点。

二、浏览器与Cypher Shell中的时间解析

针对你给出的两个场景,具体时间含义如下:

1. Neo4j浏览器的输出

Started streaming 162063 records after 129 ms and completed after 13793 ms

你的理解方向是对的,更精准的解释是:

  • 129ms是数据库完成查询计算、准备好开始向浏览器传输结果的时间点——此时所有162063条记录的计算工作已经完成,数据库开始把数据发往浏览器。
  • 13793ms是从查询发起,到浏览器完全接收并渲染完所有记录的总耗时。两者的差值(13793-129≈13664ms)主要是数据传输+浏览器UI渲染的开销,毕竟十万级别的数据在浏览器里渲染需要不少资源。

2. Cypher Shell的输出

162063 rows available after 9 ms, consumed after another 8673 ms

这个表述和浏览器的逻辑一致,只是用词不同:

  • 9ms是数据库完成查询计算,所有结果数据已经就绪、可以被Shell读取的时间——对应浏览器里的started streaming阶段。
  • "consumed after another 8673 ms"是指Shell从开始读取数据,到把所有数据输出到终端的耗时。总耗时是9+8673=8682ms,比浏览器短是因为Shell不需要做UI渲染,只是纯文本输出,开销更低。

内容的提问来源于stack exchange,提问作者Colby Cox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:06:00