Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -3879,6 +3879,17 @@ mysql> desc select count(distinct a) from test.t;
- 这个变量用来控制 TiDB Join Reorder 算法的选择。当参与 Join Reorder 的节点个数大于该阈值时,TiDB 选择贪心算法,小于该阈值时 TiDB 选择动态规划 (dynamic programming) 算法。
- 目前对于 OLTP 的查询,推荐保持默认值。对于 OLAP 的查询,推荐将变量值设为 10~15 来获得 AP 场景下更好的连接顺序。

### `tidb_opt_join_reorder_through_sel` <span class="version-mark">从 v8.5.6 和 v9.0.0 版本开始引入</span>

- 作用域: SESSION | GLOBAL
- 是否持久化到集群:是
- 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:是
- 类型:布尔型
- 默认值:`OFF`
- 该变量用于提升部分多表 JOIN 查询的连接顺序优化 (Join Reorder) 效果。当该变量值为 `ON` 时,在满足安全条件的前提下,优化器会将多个连续 JOIN 之间的过滤条件 (`Selection`) 一并纳入连接顺序优化的候选范围。在重建 JOIN 树时,优化器会将这些条件下推至更合适的位置,从而使更多表参与连接顺序优化。
- 如果开启后出现性能回退或执行计划不稳定,建议将该变量设置为 `OFF` 关闭该变量。
- 对于包含非确定性函数或具有副作用的过滤条件(例如 `rand()`),即使开启该变量,优化器也不会执行上述改写操作,以保证表达式的求值语义保持不变。

### `tidb_opt_limit_push_down_threshold`

- 作用域:SESSION | GLOBAL
Expand Down