Skip to content

Commit

Permalink
add system variable for lazy cursor fetch
Browse files Browse the repository at this point in the history
Signed-off-by: Yang Keao <[email protected]>
  • Loading branch information
YangKeao committed Jul 22, 2024
1 parent fe27e93 commit fc89882
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -2441,6 +2441,24 @@ Query OK, 0 rows affected (0.09 sec)
- 这个变量用于控制是否开启 [TiCDC 单行数据正确性校验](/ticdc/ticdc-integrity-check.md)功能。
- 你可以使用 [`TIDB_ROW_CHECKSUM()`](/functions-and-operators/tidb-functions.md#tidb_row_checksum) 函数查询行数据的 Checksum 值。

### `tidb_enable_lazy_cursor_fetch` <span class="version-mark">从 v8.3.0 版本开始引入</span>

> **警告:**
>
> 该变量控制的功能为实验特性,不建议在生产环境中使用。

- 作用域:GLOBAL
- 是否持久化到集群:是
- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否
- 类型:布尔型
- 默认值:`OFF`
- 这个变量用于控制 [Cursor Fetch](/develop/dev-guide-connection-parameters.md#使用-streamingresult-流式获取执行结果) 功能的行为。在变量为 `OFF` 时,开启 Cursor Fetch 的情况下,TiDB 将在语句开始执行时将所有数据读取完成并保存在 TiDB 内存中,并在后续客户端读取的过程中依据客户端指定 `FetchSize` 返回给客户端,如果结果集过大,可能触发落盘临时将结果写入硬盘。在变量为 `ON` 时,开启 Cursor Fetch 的情况下,TiDB 将不会一次把所有数据读取到 TiDB 节点,而是会随着客户端的读取不断将数据读到 TiDB 节点。
- 该功能存在如下限制:
- 1. 不支持处于显式事务中的语句。
- 2. 当前仅支持包含且仅包含 `TableReader``IndexReader``IndexLookUp``Projection``Selection` 算子的执行计划。
- 3. 对于使用 Lazy Cursor Fetch 的语句,执行信息将不会出现在 [Statements Summary](/statement-summary-tables.md) 和 [Slow Log](/identify-slow-queries.md) 中。
- 对于暂不支持的场景,行为将会与变量为 `OFF` 时保持一致。

### `tidb_enforce_mpp` <span class="version-mark">从 v5.1 版本开始引入</span>

- 作用域:SESSION
Expand Down

0 comments on commit fc89882

Please sign in to comment.