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

update the description of variable "tidb_scatter_region" #19152

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion best-practices/high-concurrency-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ ORDER BY

以下全局变量会影响 `PRE_SPLIT_REGIONS` 的行为,需要特别注意:

+ `tidb_scatter_region`:该变量用于控制建表完成后是否等待预切分和打散 Region 完成后再返回结果。如果建表后有大批量写入,需要设置该变量值为 `1`,表示等待所有 Region 都切分和打散完成后再返回结果给客户端。否则未打散完成就进行写入会对写入性能影响有较大的影响。
+ [`tidb_scatter_region`](/system-variables.md#tidb_scatter_region):该变量用于控制建表完成后是否等待预切分和打散 Region 完成后再返回结果。如果建表后有大批量写入,需要设置该变量值为 `GLOBAL`,表示等待所有 Region 都切分和打散完成后再返回结果给客户端。否则未打散完成就进行写入会对写入性能影响有较大的影响。

示例:

Expand Down
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-show-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ SHOW GLOBAL VARIABLES LIKE 'tidb%';
| tidb_replica_read | leader |
| tidb_retry_limit | 10 |
| tidb_row_format_version | 2 |
| tidb_scatter_region | 0 |
| tidb_scatter_region | |
| tidb_skip_isolation_level_check | 0 |
| tidb_skip_utf8_check | 0 |
| tidb_slow_log_threshold | 300 |
Expand Down
2 changes: 1 addition & 1 deletion sql-statements/sql-statement-split-region.md
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ region4 [("c", "") , maxIndexValue )

以下全局变量会影响 `PRE_SPLIT_REGIONS` 的行为,需要特别注意:

* `tidb_scatter_region`:该变量用于控制建表完成后是否等待预切分和打散 Region 完成后再返回结果。如果建表后有大批量写入,需要设置该变量值为 `1`,表示等待所有 Region 都切分和打散完成后再返回结果给客户端。否则未打散完成就进行写入会对写入性能影响有较大的影响。
* [`tidb_scatter_region`](/system-variables.md#tidb_scatter_region):该变量用于控制建表完成后是否等待预切分和打散 Region 完成后再返回结果。如果建表后有大批量写入,需要设置该变量值为 `GLOBAL`,表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。否则未打散完成就进行写入会对写入性能影响有较大的影响。

### pre_split_regions 示例

Expand Down
7 changes: 3 additions & 4 deletions system-variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -4585,11 +4585,10 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL;
- 类型:枚举型
- 默认值:`""`
- 可选值:`""`,`TABLE`,`GLOBAL`
- TiDB 默认会在建表时为新表分裂 Region。该变量用于控制表的分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值描述如下:
- `""`:默认值,表示不打散表 Region。
- `TABLE`:表示在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS` 属性,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。
- 当在建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS` 参数后,系统会在建表成功后自动将表均匀切分为指定数量的 Region。该变量用于控制这些分裂后的 Region 的打散策略。TiDB 将依据所选的打散策略对 Region 进行处理。需要特别说明的是,由于建表操作会等待 Region 打散完成后才返回成功状态,因此启用该变量可能会显著增加建表语句的执行时间,相较于未启用该变量的情况,执行时间可能会延长数倍。可选值描述如下:
- `""`:默认值,表示建表后不打散表的 Region。
- `TABLE`:表示在建表时,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。
- `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 在集群中分布均匀。
- 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。

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

Expand Down
Loading