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

sysvar: add 12 sysvars to docs-cn (#11567) #11594

Merged
Merged
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
179 changes: 177 additions & 2 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,14 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 这个变量用来控制是否启用统计信息快速分析功能。默认值 0 表示不开启。
- 快速分析功能开启后,TiDB 会随机采样约 10000 行的数据来构建统计信息。因此在数据分布不均匀或者数据量比较少的情况下,统计信息的准确度会比较低。这可能导致执行计划不优,比如选错索引。如果可以接受普通 `ANALYZE` 语句的执行时间,则推荐关闭快速分析功能。

### `tidb_enable_historical_stats`

- 作用域:GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`OFF`
- 该变量用于一个未发布的特性,**请勿修改该变量值**。

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

> **注意:**
Expand All @@ -837,7 +845,16 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 默认值:`ON`
- 这个变量用于控制是否开启 index merge 功能。

### tidb_enable_legacy_instance_scope <span class="version-mark">从 v6.0.0 版本开始引入</span>
### `tidb_enable_index_merge_join`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`OFF`
- 表示是否启用 `IndexMergeJoin` 算子。
- 该变量为 TiDB 内部变量,**不推荐使用**,否则可能会造成数据正确性问题。

### `tidb_enable_legacy_instance_scope` <span class="version-mark">从 v6.0.0 版本开始引入</span>

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
Expand All @@ -852,6 +869,14 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 默认值:`ON`
- 这个变量用来设置是否开启 `LIST (COLUMNS) TABLE PARTITION` 特性。

### `tidb_enable_local_txn`

- 作用域:GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`OFF`
- 该变量用于一个未发布的特性,**请勿修改该变量值**。

### `tidb_enable_mutation_checker` <span class="version-mark">从 v6.0.0 版本开始引入</span>

- 作用域:SESSION | GLOBAL
Expand Down Expand Up @@ -901,6 +926,14 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 默认值:0
- 这个变量用于控制是否开启 Apply 算子并发,并发数由 `tidb_executor_concurrency` 变量控制。Apply 算子用来处理关联子查询且默认无并发,所以执行速度较慢。打开 Apply 并发开关可增加并发度,提高执行速度。目前默认关闭。

### `tidb_enable_pipelined_window_function`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`ON`
- 该变量指定是否对窗口函数采用流水线的执行算法。

### `tidb_enable_prepared_plan_cache` <span class="version-mark">从 v6.1.0 版本开始引入</span>

- 作用域:GLOBAL
Expand Down Expand Up @@ -1191,6 +1224,25 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- `txn_mode`:事务模式。可选值:`OPTIMISTIC`(乐观事务模式),或 `PESSIMISTIC`(悲观事务模式)
- `sql`:当前查询对应的 SQL 语句

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

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`ON`
- 此变量控制异步提交 (Async Commit) 中提交时间戳的计算方式。默认情况下(使用 `OFF` 值),两阶段提交从 PD 服务器请求一个新的时间戳,并使用该时间戳计算最终提交的时间戳,这样可保证所有并发事务可线性化。
- 如果将该变量值设为 `ON`,从 PD 获取的时间戳的操作会被省掉,这种情况下只保证因果一致性但不保证线性一致性。详情请参考 PingCAP 博文 [Async Commit 原理介绍](https://pingcap.com/zh/blog/async-commit-principle)。
- 对于需要只保证因果一致性的场景,可将此变量设为 `ON` 以提升性能。

### `tidb_hash_exchange_with_new_collation`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`ON`
- 该值表示是否在开启 new collation 的集群里生成 MPP hash partition exchange 算子。`true` 表示生成此算子,`false`表示不生成。
- 该变量为 TiDB 内部变量,**不推荐设置该变量**。

### `tidb_hash_join_concurrency`

> **警告:**
Expand Down Expand Up @@ -1339,7 +1391,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 范围:`[100, 16384]`
- 这个变量用来设置缓存 schema 版本信息(对应版本修改的相关 table IDs)的个数限制,可设置的范围 100 - 16384。此变量在 2.1.18 及之后版本支持。

### tidb_mem_oom_action <span class="version-mark">从 v6.1.0 版本开始引入</span>
### `tidb_mem_oom_action` <span class="version-mark">从 v6.1.0 版本开始引入</span>

- 作用域:GLOBAL
- 是否持久化到集群:是
Expand Down Expand Up @@ -1404,6 +1456,14 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- TiDB 内存使用占总内存的比例超过一定阈值时会报警。该功能的详细介绍和使用方法可以参考 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio-从-v409-版本开始引入)。
- 该变量的初始值可通过 [`memory-usage-alarm-ratio`](/tidb-configuration-file.md#memory-usage-alarm-ratio-从-v409-版本开始引入) 进行配置。

### `tidb_merge_join_concurrency`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 默认值:`1`
- 设置 `MergeJoin` 算子执行查询时的并发度。
- **不推荐设置该变量**,修改该变量值可能会造成数据正确性问题。

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

- 作用域:SESSION
Expand Down Expand Up @@ -1466,6 +1526,35 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 默认值:`OFF`
- 这个变量用来设置优化器是否执行聚合函数下推到 Join,Projection 和 UnionAll 之前的优化操作。当查询中聚合操作执行很慢时,可以尝试设置该变量为 ON。

### `tidb_opt_broadcast_cartesian_join`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:整数
- 默认值:`1`
- 范围:`[0, 2]`
- 表示是否允许 Broadcast Cartesian Join 算法。
- 值为 `0` 时表示不允许使用 Broadcast Cartesian Join 算法。值为 `1` 时表示根据 [`tidb_broadcast_join_threshold_count`](#tidb_broadcast_join_threshold_count-从-v50-版本开始引入) 的行数阈值确定是否允许使用 Broadcast Cartesian Join 算法。值为 `2` 时表示总是允许 Broadcast Cartesian Join 算法,即使表的大小超过了该阈值。
- 该变量是 TiDB 内部使用的变量,**不推荐**修改该变量的值。

### `tidb_opt_concurrency_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`3.0`
- 表示在 TiDB 中开启一个 Golang goroutine 的 CPU 开销。该变量是[代价模型](/cost-model.md)内部使用的变量,**不建议**修改该变量的值。

### `tidb_opt_copcpu_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`3.0`
- 表示 TiKV 协处理器处理一行数据的 CPU 开销。该变量是[代价模型](/cost-model.md)内部使用的变量,**不建议**修改该变量的值。

### `tidb_opt_correlation_exp_factor`

- 作用域:SESSION | GLOBAL
Expand All @@ -1482,6 +1571,33 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 这个变量用来设置优化器启用交叉估算 row count 方法的阈值。如果列和 handle 列之间的顺序相关性超过这个阈值,就会启用交叉估算方法。
- 交叉估算方法可以简单理解为,利用这个列的直方图来估算 handle 列需要扫的行数。

### `tidb_opt_cpu_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`3.0`
- 表示 TiDB 处理一行数据的 CPU 开销。该变量是[代价模型](/cost-model.md)内部使用的变量,不建议修改该变量的值。

### `tidb_opt_desc_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`3.0`
- 表示降序扫描时,TiKV 在磁盘上扫描一行数据的开销。该变量是[代价模型](/cost-model.md)内部使用的变量,**不建议**修改该变量的值。

### `tidb_opt_disk_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`1.5`
- 表示 TiDB 往临时磁盘读写一个字节数据的 I/O 开销。该变量是[代价模型](/cost-model.md)内部使用的变量,**不建议**修改该变量的值。

### `tidb_opt_distinct_agg_push_down`

- 作用域:SESSION
Expand Down Expand Up @@ -1563,6 +1679,32 @@ mysql> desc select count(distinct a) from test.t;
- 这个变量用来设置将 Limit 和 TopN 算子下推到 TiKV 的阈值。
- 如果 Limit 或者 TopN 的取值小于等于这个阈值,则 Limit 和 TopN 算子会被强制下推到 TiKV。该变量可以解决部分由于估算误差导致 Limit 或者 TopN 无法被下推的问题。

### `tidb_opt_memory_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`0.001`
- 表示 TiDB 存储一行数据的内存开销。该变量是[代价模型](/cost-model.md)内部使用的变量,**不建议**修改该变量的值。

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

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:布尔型
- 默认值:`OFF`
- 当该变量值为 `ON` 时,左连接始终使用内表作为构建端,右连接始终使用外表作为构建端。将该变量值设为 `OFF` 后,外连接可以灵活选择任意一边表作为构建端。

### `tidb_opt_network_factor`

- 作用域:SESSION | GLOBAL
- 是否持久化
- 类型:浮点数
- 范围:`[0, 2147483647]`
- 默认值:`1.0`
- 表示传输 1 比特数据的网络净开销。该变量是[代价模型](/cost-model.md)内部使用的变量,**不建议**修改该变量的值。

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

- 作用域:SESSION | GLOBAL
Expand Down Expand Up @@ -1812,6 +1954,14 @@ Query OK, 0 rows affected, 1 warning (0.00 sec)
- 范围:`[-1, 256]`
- TiFlash 中 request 执行的最大并发度。默认值为 -1,表示该系统变量无效。0 表示由 TiFlash 系统自动设置该值。

### `tidb_mpp_store_fail_ttl`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 类型:Duration
- 默认值:`60s`
- 刚重启的 TiFlash 可能不能正常提供服务。为了防止查询失败,TiDB 会限制 tidb-server 向刚重启的 TiFlash 节点发送查询。这个变量表示刚重启的 TiFlash 不被发送请求的时间范围。

### `tidb_slow_query_file`

- 作用域:SESSION
Expand Down Expand Up @@ -1899,6 +2049,14 @@ Query OK, 0 rows affected, 1 warning (0.00 sec)
- 单位:秒
- 这个变量设置了 [statement summary tables](/statement-summary-tables.md) 的刷新时间。

### `tidb_streamagg_concurrency`

- 作用域:SESSION | GLOBAL
- 是否持久化到集群:是
- 默认值:`1`
- 设置 `StreamAgg` 算子执行查询时的并发度。
- **不推荐设置该变量**,修改该变量值可能会造成数据正确性问题。

### `tidb_top_sql_max_meta_count` <span class="version-mark">从 v6.0.0 版本开始引入</span>

- 作用域:GLOBAL
Expand Down Expand Up @@ -2075,6 +2233,23 @@ Query OK, 0 rows affected, 1 warning (0.00 sec)

这个变量是 `transaction_isolation` 的别名。

### `tx_read_ts`

- 作用域:SESSION
- 是否持续化到集群:否
- 默认值:`0`
- 在 Stale Read 场景下,该会话变量用于帮助记录 Stable Read TS 值。
- 该变量仅用于 TiDB 内部实现,**不推荐设置该变量**。

### `txn_scope`

- 作用域:SESSION
- 是否持续化到集群:否
- 默认值:`global`
- 可选值:`global` 和 `local`
- 该变量用于设置当前会话下事务为全局事务(设为 `global`)还是局部事务(设为 `local`)。
- 该变量仅用于 TiDB 内部实现,**不推荐设置该变量**。

### `version`

- 作用域:NONE
Expand Down