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

system-variables: Add units wherever possible (#12807) #12917

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
28 changes: 25 additions & 3 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ mysql> SELECT * FROM t1;
- 默认值:`28800`
- 范围:`[1, 31536000]`
- 单位:秒
- 该变量表示交互式用户会话的空闲超时。交互式用户会话是指使用 `CLIENT_INTERACTIVE` 选项调用 [`mysql_real_connect()`](https://dev.mysql.com/doc/c-api/5.7/en/mysql-real-connect.html) API 建立的会话(例如:MySQL shell 客户端)。该变量与 MySQL 完全兼容。
- 该变量表示交互式用户会话的空闲超时。交互式用户会话是指使用 `CLIENT_INTERACTIVE` 选项调用 [`mysql_real_connect()`](https://dev.mysql.com/doc/c-api/5.7/en/mysql-real-connect.html) API 建立的会话(例如:MySQL shell 和 MySQL client)。该变量与 MySQL 完全兼容。

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

Expand Down Expand Up @@ -351,6 +351,7 @@ mysql> SELECT * FROM t1;
- 作用域:SESSION | GLOBAL
- 默认值:`18446744073709551615`
- 范围:`[0, 18446744073709551615]`
- 单位:行
- `SELECT` 语句返回的最大行数。

### `ssl_ca`
Expand Down Expand Up @@ -481,7 +482,8 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:SESSION | GLOBAL
- 默认值:`10240`
- 范围:`[0, 9223372036854775807]`
- 单位为行数。如果 join 的对象为子查询,优化器无法估计子查询结果集大小,在这种情况下通过结果集行数判断。如果子查询的行数估计值小于该变量,则选择 Broadcast Hash Join 算法。否则选择 Shuffled Hash Join 算法。
- 单位:行
- 如果 join 的对象为子查询,优化器无法估计子查询结果集大小,在这种情况下通过结果集行数判断。如果子查询的行数估计值小于该变量,则选择 Broadcast Hash Join 算法。否则选择 Shuffled Hash Join 算法。

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

Expand All @@ -495,6 +497,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数

- 作用域:SESSION | GLOBAL
- 默认值:`4`
- 单位:线程
- 这个变量用来设置 ANALYZE 语句执行时并发度。
- 当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。

Expand All @@ -516,6 +519,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数

- 作用域:SESSION
- 默认值:`4`
- 单位:线程
- 这个变量用来设置 `ADMIN CHECKSUM TABLE` 语句执行时扫描索引的并发度。当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。

### `tidb_config`
Expand Down Expand Up @@ -589,10 +593,11 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:GLOBAL
- 默认值:`256`
- 范围:`[32, 10240]`
- 单位:行
- 这个变量用来设置 DDL 操作 `re-organize` 阶段的 batch size。比如 `ADD INDEX` 操作,需要回填索引数据,通过并发 `tidb_ddl_reorg_worker_cnt` 个 worker 一起回填数据,每个 worker 以 batch 为单位进行回填。

- 如果 `ADD INDEX` 操作时有较多 `UPDATE` 操作或者 `REPLACE` 等更新操作,batch size 越大,事务冲突的概率也会越大,此时建议调小 batch size 的值,最小值是 32。
- 在没有事务冲突的情况下,batch size 可设为较大值(需要参考 worker 数量,见[线上负载与 `ADD INDEX` 相互影响测试](/benchmark/online-workloads-and-add-index-operations.md)),最大值是 10240,这样回填数据的速度更快,但是 TiKV 的写入压力也会变大。
- 在没有事务冲突的情况下,batch size 可设为较大值(需要参考 worker 数量,见[线上负载与 `ADD INDEX` 相互影响测试](/benchmark/online-workloads-and-add-index-operations.md)),这样回填数据的速度更快,但是 TiKV 的写入压力也会变大。

### `tidb_ddl_reorg_priority`

Expand All @@ -605,6 +610,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:GLOBAL
- 默认值:`4`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置 DDL 操作 `re-organize` 阶段的并发度。

### `tidb_disable_txn_auto_retry`
Expand All @@ -626,6 +632,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:SESSION | GLOBAL
- 默认值:`15`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置 scan 操作的并发度。
- AP 类应用适合较大的值,TP 类应用适合较小的值。对于 AP 类应用,最大值建议不要超过所有 TiKV 节点的 CPU 核数。
- 若表的分区较多可以适当调小该参数(取决于扫描数据量的大小以及扫描频率),避免 TiKV 内存溢出 (OOM)。
Expand All @@ -635,6 +642,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:SESSION | GLOBAL
- 默认值:`0`
- 范围:`[0, 2147483647]`
- 单位:行
- 这个变量的值大于 `0` 时,TiDB 会将 `INSERT` 或 `LOAD DATA` 等语句在更小的事务中批量提交。这样可减少内存使用,确保大批量修改时事务大小不会达到 `txn-total-size-limit` 限制。
- 要使 `tidb_dml_batch_size` 作用于 `INSERT` 语句,你还需要将系统变量 [`tidb_batch_insert`](#tidb_batch_insert) 设置为 `ON`。
- 只有变量值为 `0` 时才符合 ACID 要求。否则无法保证 TiDB 的原子性和隔离性要求。
Expand Down Expand Up @@ -994,6 +1002,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数
- 作用域:SESSION | GLOBAL
- 默认值:`5`
- 范围:`[1, 256]`
- 单位:线程

变量用来统一设置各个 SQL 算子的并发度,包括:

Expand Down Expand Up @@ -1038,6 +1047,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用于指定 GC 在[Resolve Locks(清理锁)](/garbage-collection-overview.md#resolve-locks清理锁)步骤中线程的数量。默认值 `-1` 表示由 TiDB 自主判断运行 GC 要使用的线程的数量。

### `tidb_gc_enable` <span class="version-mark">从 v5.0 版本开始引入</span>
Expand Down Expand Up @@ -1105,6 +1115,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置 hash join 算法的并发度。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand All @@ -1117,6 +1128,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置并行 hash aggregation 算法 final 阶段的执行并发度。对于聚合函数参数不为 distinct 的情况,HashAgg 分为 partial 和 final 阶段分别并行执行。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand All @@ -1129,6 +1141,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置并行 hash aggregation 算法 partial 阶段的执行并发度。对于聚合函数参数不为 distinct 的情况,HashAgg 分为 partial 和 final 阶段分别并行执行。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand All @@ -1137,6 +1150,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`25000`
- 范围:`[1, 2147483647]`
- 单位:行
- 这个变量用来设置 index lookup join 操作的 batch 大小,AP 类应用适合较大的值,TP 类应用适合较小的值。

### `tidb_index_lookup_concurrency`
Expand All @@ -1148,6 +1162,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置 index lookup 操作的并发度,AP 类应用适合较大的值,TP 类应用适合较小的值。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand All @@ -1160,6 +1175,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置 index lookup join 算法的并发度。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand All @@ -1168,20 +1184,23 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`20000`
- 范围:`[1, 2147483647]`
- 单位:行
- 这个变量用来设置 index lookup 操作的 batch 大小,AP 类应用适合较大的值,TP 类应用适合较小的值。

### `tidb_index_serial_scan_concurrency`

- 作用域:SESSION | GLOBAL
- 默认值:`1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用来设置顺序 scan 操作的并发度,AP 类应用适合较大的值,TP 类应用适合较小的值。

### `tidb_init_chunk_size`

- 作用域:SESSION | GLOBAL
- 默认值:`32`
- 范围:`[1, 32]`
- 单位:行
- 这个变量用来设置执行过程中初始 chunk 的行数。默认值是 32,可设置的范围是 1~32。

### `tidb_isolation_read_engines` <span class="version-mark">从 v4.0 版本开始引入</span>
Expand Down Expand Up @@ -1209,6 +1228,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告)
- 作用域:SESSION | GLOBAL
- 默认值:`1024`
- 范围:`[32, 2147483647]`
- 单位:行
- 这个变量用来设置执行过程中一个 chunk 最大的行数,设置过大可能引起缓存局部性的问题。

### `tidb_max_delta_schema_count`
Expand Down Expand Up @@ -1452,6 +1472,7 @@ explain select * from t where age=5;
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[-1, 256]`
- 单位:线程
- 这个变量用来设置 `Projection` 算子的并发度。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand Down Expand Up @@ -1760,6 +1781,7 @@ set tidb_slow_log_threshold = 200;
- 作用域:SESSION | GLOBAL
- 默认值:`-1`
- 范围:`[1, 256]`
- 单位:线程
- 这个变量用于设置 window 算子的并行度。
- 默认值 `-1` 表示使用 `tidb_executor_concurrency` 的值。

Expand Down