首批通过分布式安全可靠测评,为关键业务系统打造
结果集概述
更新时间:2026-04-09 15:20:57
结果集按照数据读取方式可以分为全量结果集、流式结果集和游标结果集。
结果集的三种数据读取方式与优缺点如下表所示。
| 结果集类型 | 查询方式 | 数据读取方式 | 优点 | 缺点 |
|---|---|---|---|---|
| 全量结果集 | 普通查询 | Server 一次返回所有行;JDBC 一次读取所有行,存储所有行。 | 应用代码简单,数据量较小时执行速度最快。 | 数据量较大时会引发 OOM (Out Of Memory,内存不足)问题。 |
| 流式结果集 | 流式查询 | Server 一次返回所有行;JDBC 一次读取一行,存储一行。 | 数据量较大时不会引发 OOM 问题。 |
执行期间占用数据库时间更长,一旦开始读取就无法停止,导致网络拥塞的可能性较大。 |
| 游标结果集 | 游标查询 | Server 一次返回 FetchSize 行;JDBC 一次读取 FetchSize 行。
|
数据量较大时不会引发 OOM 问题。相比流式查询,对数据库单次占用时间较短。 |
执行速度较慢。相比流式查询,对服务端资源的消耗更大,响应时间更长。 |
说明
执行文本协议时,OceanBase 数据库的两种模式均使用全量结果集。
三种结果集分别在 MySQL 模式和 Oracle 模式下的触发条件如下表所示。
| 结果集类型 | MySQL 模式 | Oracle 模式 |
|---|---|---|
| 游标结果集 |
|
URL 连接串设置为 &useServerPrepStmts=true 或 &useCursorFetch=true 说明 当 useCursorFetch 为 true 时,useServerPrepStmts 会被自动设置为 true)。 |
| 流式结果集 |
|
不支持。 说明 OceanBase Connector/J V2.2.7 版本及以上版本的 Oracle 模式下不再支持流式读取。 |
| 全量结果集 | 除游标结果集、流式结果集的触发条件之外,均使用全量结果集。 | URL 连接串设置为 &useServerPrepStmts=false |