Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

planner: add variables for instance plan cache #18557

Merged
merged 18 commits into from
Oct 15, 2024
39 changes: 39 additions & 0 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -2180,6 +2180,19 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1;
- 默认值:`OFF`
- 该变量用于控制当内表上有 `Selection`/`Projection` 算子时是否支持 Index Join。`OFF` 表示不支持。

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

> **警告:**
>
> Instance Plan Cache 目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 [issue](https://github.com/pingcap/tidb/issues) 反馈。

- 作用域:GLOBAL
- 是否持久化到集群:是
- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否
- 类型:布尔型
- 默认值:`OFF`
- 这个变量用于控制是否开启 Instance Plan Cache 功能。该功能实现实例级执行计划缓存,允许同一个 TiDB 实例的所有会话共享执行计划缓存,从而提升内存利用率。
qw4990 marked this conversation as resolved.
Show resolved Hide resolved

### `tidb_enable_ordered_result_mode`

- 作用域:SESSION | GLOBAL
Expand Down Expand Up @@ -2966,6 +2979,32 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 单位:行
- 这个变量用来设置执行过程中初始 chunk 的行数。默认值是 32,可设置的范围是 1~32。chunk 行数直接影响单个查询所需的内存。可以按照查询中所有的列的总宽度和 chunk 行数来粗略估算单个 chunk 所需内存,并结合执行器的并发数来粗略估算单个查询所需内存总量。建议单个 chunk 内存总量不要超过 16 MiB。

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

> **警告:**
>
> Instance Plan Cache 目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 [issue](https://github.com/pingcap/tidb/issues) 反馈。

- 作用域:GLOBAL
- 是否持久化到集群:是
- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否
- 类型:整数型
- 默认值:`104857600`(即 100 MiB)
- 这个变量用于设置 Instance Plan Cache 的目标内存大小。TiDB 后台定期清理 Instance Plan Cache,以确保其内存占用不超过该变量设置的值。
qw4990 marked this conversation as resolved.
Show resolved Hide resolved

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

> **警告:**
>
> Instance Plan Cache 目前为实验特性,不建议在生产环境中使用。该功能可能会在未事先通知的情况下发生变化或删除。如果发现 bug,请在 GitHub 上提 [issue](https://github.com/pingcap/tidb/issues) 反馈。

- 作用域:GLOBAL
- 是否持久化到集群:是
- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否
- 类型:整数型
- 默认值:`125829120`(即 120 MiB)
- 这个变量用于设置 Instance Plan Cache 的最大内存使用量。
qw4990 marked this conversation as resolved.
Show resolved Hide resolved
Oreoxmt marked this conversation as resolved.
Show resolved Hide resolved

### `tidb_isolation_read_engines` <span class="version-mark">从 v4.0 版本开始引入</span>

- 作用域:SESSION
Expand Down