From 1b1518f763b713a73715d68b4e1327f3756ab688 Mon Sep 17 00:00:00 2001 From: Benjamin2037 Date: Fri, 13 Sep 2024 09:26:47 +0800 Subject: [PATCH 01/14] Update tidb_scatter_region usage for new definition. --- system-variables.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/system-variables.md b/system-variables.md index 526584fc2536..c333f55137d9 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4152,9 +4152,10 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; - 作用域:GLOBAL - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 -- 类型:布尔型 -- 默认值:`OFF` -- TiDB 默认会在建表时为新表分裂 Region。开启该变量后,会在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。 +- 类型:枚举型 +- 默认值: `` +- 可选值: ``, `TABLE`, `GLOBAL' +- TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。`` 默认值,该选项表示对于表 Region 不做打散,`TABLE` 表示 TiDB 会按照表数据分布情况对于表数据进行打散,'GLOBAL' 表示 TiDB 会按照集群整体的数据分布情况对于数据进行打散。在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 ### `tidb_schema_version_cache_limit` 从 v7.4.0 版本开始引入 From 49de5b94c405be92e8194606ea666233435e934f Mon Sep 17 00:00:00 2001 From: Benjamin2037 Date: Fri, 13 Sep 2024 09:38:54 +0800 Subject: [PATCH 02/14] Add sesssion level support. --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index c333f55137d9..67cbb9b85266 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4149,7 +4149,7 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; ### `tidb_scatter_region` -- 作用域:GLOBAL +- 作用域:SESSION | GLOBAL - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:枚举型 From cf1820107d7429357803c0b37fa1d46602090fc2 Mon Sep 17 00:00:00 2001 From: Benjamin2037 Date: Fri, 13 Sep 2024 10:17:24 +0800 Subject: [PATCH 03/14] Update system-variables.md Co-authored-by: xixirangrang --- system-variables.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index 67cbb9b85266..ffae3403fbd0 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4155,7 +4155,10 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; - 类型:枚举型 - 默认值: `` - 可选值: ``, `TABLE`, `GLOBAL' -- TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。`` 默认值,该选项表示对于表 Region 不做打散,`TABLE` 表示 TiDB 会按照表数据分布情况对于表数据进行打散,'GLOBAL' 表示 TiDB 会按照集群整体的数据分布情况对于数据进行打散。在建表语句执行时,同步打散刚分裂出的 Region。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。 +- TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值包括: + - 默认值为 ``,表示对于表 Region 不进行打散。 + - `TABLE` 表示 TiDB 会按照表数据分布情况对于表数据进行打散。 + - `GLOBAL` 表示 TiDB 会按照集群整体的数据分布情况对于数据进行打散。在建表语句执行时,同步打散刚分裂出的 Region。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 ### `tidb_schema_version_cache_limit` 从 v7.4.0 版本开始引入 From cb2acbb905eca7ccd4987454e164776ecb278076 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 13 Sep 2024 10:19:04 +0800 Subject: [PATCH 04/14] Update system-variables.md --- system-variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system-variables.md b/system-variables.md index ffae3403fbd0..f20bfb13615a 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4153,8 +4153,8 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:枚举型 -- 默认值: `` -- 可选值: ``, `TABLE`, `GLOBAL' +- 默认值:`` +- 可选值:``, `TABLE`, `GLOBAL' - TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值包括: - 默认值为 ``,表示对于表 Region 不进行打散。 - `TABLE` 表示 TiDB 会按照表数据分布情况对于表数据进行打散。 From e232eb8bd5db379d64e4654d2fa2ec8c2dfa82ce Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 13 Sep 2024 10:28:45 +0800 Subject: [PATCH 05/14] Update system-variables.md --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index f20bfb13615a..5ee067965d9c 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4154,7 +4154,7 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:枚举型 - 默认值:`` -- 可选值:``, `TABLE`, `GLOBAL' +- 可选值:``,`TABLE`,`GLOBAL' - TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值包括: - 默认值为 ``,表示对于表 Region 不进行打散。 - `TABLE` 表示 TiDB 会按照表数据分布情况对于表数据进行打散。 From 2aa89b4eff7afa515f4de3630c1444dc605d2590 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 13 Sep 2024 10:41:16 +0800 Subject: [PATCH 06/14] Update system-variables.md --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index 5ee067965d9c..c0d8849956b4 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4154,7 +4154,7 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:枚举型 - 默认值:`` -- 可选值:``,`TABLE`,`GLOBAL' +- 可选值:``,`TABLE`,`GLOBAL` - TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值包括: - 默认值为 ``,表示对于表 Region 不进行打散。 - `TABLE` 表示 TiDB 会按照表数据分布情况对于表数据进行打散。 From 0535db18ae4bf4b0f92a31aa4367ead65055b78a Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Fri, 13 Sep 2024 11:13:07 +0800 Subject: [PATCH 07/14] Update system-variables.md --- system-variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system-variables.md b/system-variables.md index c0d8849956b4..863e4fdda20f 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4157,8 +4157,8 @@ 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` 表示 TiDB 会按照表数据分布情况对于表数据进行打散。 - - `GLOBAL` 表示 TiDB 会按照集群整体的数据分布情况对于数据进行打散。在建表语句执行时,同步打散刚分裂出的 Region。 + - `TABLE` 表示 TiDB 会按照表数据分布情况对表数据进行打散。 + - `GLOBAL` 表示 TiDB 会按照集群整体的数据分布情况对数据进行打散。在建表语句执行时,同步打散刚分裂出的 Region。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 ### `tidb_schema_version_cache_limit` 从 v7.4.0 版本开始引入 From 3ee904a779353f3500df9cc31d6479ca8703dcc2 Mon Sep 17 00:00:00 2001 From: Benjamin2037 Date: Wed, 18 Sep 2024 15:27:52 +0800 Subject: [PATCH 08/14] Update system-variables.md Co-authored-by: Frank945946 <108602632+Frank945946@users.noreply.github.com> --- system-variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system-variables.md b/system-variables.md index 863e4fdda20f..9a4d56379a60 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4157,8 +4157,8 @@ 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` 表示 TiDB 会按照表数据分布情况对表数据进行打散。 - - `GLOBAL` 表示 TiDB 会按照集群整体的数据分布情况对数据进行打散。在建表语句执行时,同步打散刚分裂出的 Region。 + - `TABLE`:表示当你建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS`,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果你这建表时没有设置上述属性,在快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 + - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 ### `tidb_schema_version_cache_limit` 从 v7.4.0 版本开始引入 From d13ea86e21856892b42921c4e000acc9e7acad18 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 19 Sep 2024 14:34:35 +0800 Subject: [PATCH 09/14] Update system-variables.md --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index 9a4d56379a60..611a3c7962fa 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4157,7 +4157,7 @@ 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 分布不均匀。 + - `TABLE`:表示当你在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS`,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果你在建表时没有设置上述属性,在快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 From d21c82f0f3ab9fd597ddae9466624487344703b8 Mon Sep 17 00:00:00 2001 From: Benjamin2037 Date: Thu, 19 Sep 2024 14:41:04 +0800 Subject: [PATCH 10/14] minus edit. --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index 611a3c7962fa..8c92ae2827e1 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4157,7 +4157,7 @@ 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 分布不均匀。 + - `TABLE`:表示在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS`,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 From 0bd94cebb665deaa564b93c83138346efa2c90de Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Mon, 23 Sep 2024 15:58:00 +0800 Subject: [PATCH 11/14] Update wording and format --- system-variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system-variables.md b/system-variables.md index 8c92ae2827e1..30747b59667b 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4156,8 +4156,8 @@ 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 分布不均匀。 + - 默认值 ``:表示对于表 Region 不进行打散。 + - `TABLE`:表示在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS` 属性,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 From 7820e189536d6f5094c234c0bb602f4f444eaadb Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 26 Sep 2024 15:57:20 +0800 Subject: [PATCH 12/14] Apply suggestions from code review --- system-variables.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system-variables.md b/system-variables.md index 30747b59667b..2285cb95b218 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4153,10 +4153,10 @@ EXPLAIN FORMAT='brief' SELECT COUNT(1) FROM t WHERE a = 1 AND b IS NOT NULL; - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:枚举型 -- 默认值:`` -- 可选值:``,`TABLE`,`GLOBAL` +- 默认值:`""` +- 可选值:`""`,`TABLE`,`GLOBAL` - TiDB 默认会在建表时为新表分裂 Region,使用该变量控制表分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,能让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值包括: - - 默认值 ``:表示对于表 Region 不进行打散。 + - 默认值为空 `""`:表示不打散表 Region。 - `TABLE`:表示在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS` 属性,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 From 6261ac2ee450696c21b5051a485bbe6ae22fd675 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Thu, 26 Sep 2024 18:10:31 +0800 Subject: [PATCH 13/14] Apply suggestions from code review --- system-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-variables.md b/system-variables.md index 2285cb95b218..d90c12c8e843 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4156,7 +4156,7 @@ 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。 + - `""`:默认值,表示不打散表 Region。 - `TABLE`:表示在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS` 属性,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 From b77ae1faa390a1128e87400b7112d8bc81f78a9b Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Tue, 8 Oct 2024 15:36:12 +0800 Subject: [PATCH 14/14] Refine wording --- system-variables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system-variables.md b/system-variables.md index d90c12c8e843..c3ebf2d2f8fa 100644 --- a/system-variables.md +++ b/system-variables.md @@ -4155,10 +4155,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 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值包括: +- TiDB 默认会在建表时为新表分裂 Region。该变量用于控制表的分裂打散策略,TiDB 会根据选择的打散策略进行 Region 打散。适用于批量建表后紧接着批量写入数据,让刚分裂出的 Region 先在 TiKV 分散而不用等待 PD 进行调度。为了保证后续批量写入数据的稳定性,建表语句会等待打散 Region 完成后再返回建表成功,建表语句执行时间会是该变量关闭时的数倍。可选值描述如下: - `""`:默认值,表示不打散表 Region。 - `TABLE`:表示在建表时,如果设置了 `PRE_SPLIT_REGIONS` 或者 `SHARD_ROW_ID_BITS` 属性,预分裂多个 Region 的场景下,会按表的粒度对这些表的 Region 进行打散。但是如果在建表时没有设置上述属性,需要快速创建大量表的场景,会导致这些表的 Region 集中在其中几个 TiKV 节点上,造成 Region 分布不均匀。 - - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 分布均匀。 + - `GLOBAL`:表示 TiDB 会根据整个集群的数据分布情况来打散新建表的 Region。特别是快速创建大量表的时候,使用 `GLOBAL` 可以有效避免 Region 过度集中在少数几个 TiKV 节点上,确保 Region 在集群中分布均匀。 - 如果建表时设置了 `SHARD_ROW_ID_BITS` 和 `PRE_SPLIT_REGIONS`,建表成功后会均匀切分出指定数量的 Region。 ### `tidb_schema_version_cache_limit` 从 v7.4.0 版本开始引入