From 6928d9d41a69672f24ee7c53b214837c4ab0a5c3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 6 May 2026 09:27:55 +0000 Subject: [PATCH 1/3] Auto-sync: Update Chinese docs from English PR Synced from: https://github.com/pingcap/docs/pull/21938 Target PR: https://github.com/pingcap/docs-cn/pull/21605 AI Provider: azure Co-authored-by: github-actions[bot] --- best-practices/tidb-best-practices.md | 6 ++-- .../sql-statement-show-variables.md | 2 +- statistics.md | 20 ++++++++----- system-variables.md | 30 ++++++++++++------- troubleshoot-tidb-oom.md | 1 - 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/best-practices/tidb-best-practices.md b/best-practices/tidb-best-practices.md index 839c41eb752a..ee13ff4ee544 100644 --- a/best-practices/tidb-best-practices.md +++ b/best-practices/tidb-best-practices.md @@ -86,7 +86,7 @@ TiDB 支持完整的二级索引,并且是全局索引,很多查询可以通 TiDB 实现了[全局索引](/global-indexes.md),所以索引和 Table 中的数据并不一定在一个数据分片上。通过索引查询的时候,需要先扫描索引,得到对应的行 ID,然后通过行 ID 去取数据,所以可能会涉及到两次网络请求,会有一定的性能开销。 - 如果查询涉及到大量的行,那么扫描索引是并发进行,只要第一批结果已经返回,就可以开始去取 Table 的数据,所以这里是一个并行 + Pipeline 的模式,虽然有两次访问的开销,但是延迟并不会很大。 + 如果查询涉及到大量的行,那么扫描索引是并发进行,只要第一批结果已经返回,就可以开始去取 Table 的数据,所以这里是一个并行 + Pipeline 的模式,虽然有两次访问的开销,但是延时并不会很大。 以下情况不会涉及到两次访问的问题: @@ -103,7 +103,7 @@ TiDB 支持完整的二级索引,并且是全局索引,很多查询可以通 - [tidb_index_lookup_size](/system-variables.md#tidb_index_lookup_size) - 如果是需要访问索引获取行 ID 之后再访问 Table 数据,那么每次会把一批行 ID 作为一次请求去访问 Table 数据,这个参数可以设置 Batch 的大小,较大的 Batch 会使得延迟增加,较小的 Batch 可能会造成更多的查询次数。这个参数的合适大小与查询涉及的数据量有关。一般不需要调整。 + 如果是需要访问索引获取行 ID 之后再访问 Table 数据,那么每次会把一批行 ID 作为一次请求去访问 Table 数据,这个参数可以设置 Batch 的大小,较大的 Batch 会使得延时增加,较小的 Batch 可能会造成更多的查询次数。这个参数的合适大小与查询涉及的数据量有关。一般不需要调整。 - [tidb_index_lookup_concurrency](/system-variables.md#tidb_index_lookup_concurrency) @@ -111,7 +111,7 @@ TiDB 支持完整的二级索引,并且是全局索引,很多查询可以通 + 通过索引保证结果顺序 - 索引除了可以用来过滤数据之外,还能用来对数据排序,首先按照索引的顺序获取行 ID,然后再按照行 ID 的返回顺序返回行的内容,这样可以保证返回结果按照索引列有序。前面提到了扫索引和获取 Row 之间是并行 + Pipeline 模式,如果要求按照索引的顺序返回 Row,那么这两次查询之间的并发度设置的太高并不会降低延迟,所以默认的并发度比较保守。可以通过 [tidb_index_serial_scan_concurrency](/system-variables.md#tidb_index_serial_scan_concurrency) 变量进行并发度调整。 + 索引除了可以用来过滤数据之外,还能用来对数据排序,TiDB 首先按照索引的顺序获取行 ID,然后再按照这些行 ID 的顺序返回行的内容,这样可以保证返回结果按照索引列有序。前面提到了扫索引和获取 Row 之间是并行 + Pipeline 模式,如果要求按照索引的顺序返回 Row,那么这两次查询之间的高并发并不会降低延时,所以默认的并发度比较保守。可以通过调整 [`tidb_executor_concurrency`](/system-variables.md#tidb_executor_concurrency-new-in-v50) 来提高并发度。 + 逆序索引 diff --git a/sql-statements/sql-statement-show-variables.md b/sql-statements/sql-statement-show-variables.md index 0ec537d95ae1..cdaad5baf977 100644 --- a/sql-statements/sql-statement-show-variables.md +++ b/sql-statements/sql-statement-show-variables.md @@ -42,7 +42,7 @@ SHOW GLOBAL VARIABLES LIKE 'tidb%'; | tidb_backoff_weight | 2 | | tidb_batch_commit | 0 | | tidb_batch_delete | 0 | -| tidb_build_stats_concurrency | 4 | +| tidb_build_stats_concurrency | 2 | | tidb_capture_plan_baselines | off | | tidb_check_mb4_value_in_utf8 | 1 | | tidb_checksum_table_concurrency | 4 | diff --git a/statistics.md b/statistics.md index 4e76096f8fc3..63d756d73ae4 100644 --- a/statistics.md +++ b/statistics.md @@ -688,23 +688,29 @@ mysql> SHOW WARNINGS; #### `tidb_build_stats_concurrency` -`ANALYZE` 任务在执行时会被切分成一个个小任务,每个任务只负责某一个列或者索引的统计信息收集。你可以使用 [`tidb_build_stats_concurrency`](/system-variables.md#tidb_build_stats_concurrency) 控制可以同时执行的小任务的数量,其默认值是 `2`。TiDB v7.4.0 及其之前版本中,默认值为 `4`。 +该变量控制表或分区分析的并发度(例如,可同时处理的分区或表任务数量)。其默认值是 `2`。TiDB v7.4.0 及其以下版本中,默认值为 `4`。 #### `tidb_build_sampling_stats_concurrency` -在执行 `ANALYZE` 普通列任务的时候,你可以使用 [`tidb_build_sampling_stats_concurrency`](/system-variables.md#tidb_build_sampling_stats_concurrency-从-v750-版本开始引入) 控制执行采样任务的并发数量,其默认值是 `2`。 +该变量控制 `ANALYZE` 的以下并发相关方面: + +- 合并从不同 Region 收集的样本时的并发度。 +- 特殊索引(例如基于生成虚拟列的索引)的并发度,例如 TiDB 可同时为其收集统计信息的索引数量。 + +其默认值是 `2`。 #### `tidb_analyze_partition_concurrency` -在执行 `ANALYZE` 任务的时候,你可以使用 [`tidb_analyze_partition_concurrency`](/system-variables.md#tidb_analyze_partition_concurrency) 控制对分区表统计信息进行读写的并发度,其默认值是 `2`。TiDB v7.4.0 及其之前版本中,默认值为 `1`。 +该变量控制保存 analyze 结果(将 TopN 和直方图写入系统表)的并发度。其默认值是 `2`。TiDB v7.4.0 及其以下版本中,默认值为 `1`。 -#### `tidb_distsql_scan_concurrency` +#### `tidb_analyze_distsql_scan_concurrency` -在执行 `ANALYZE` 普通列任务的时候,你可以使用 [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) 控制一次读取的 Region 数量,其默认值是 `15`。修改该变量的值会影响查询性能,请谨慎调整。 +该变量控制 `ANALYZE` 的以下并发相关方面: -#### `tidb_index_serial_scan_concurrency` +- 扫描 TiKV Region 的并发度。 +- 扫描特殊索引(基于虚拟列生成的索引)对应 Region 的并发度。 -在执行 `ANALYZE` 索引列任务的时候,你可以使用 [`tidb_index_serial_scan_concurrency`](/system-variables.md#tidb_index_serial_scan_concurrency) 控制一次读取的 Region 数量,其默认值是 `1`。修改该变量的值会影响查询性能,请谨慎调整。 +其默认值是 `4`。 ## 另请参阅 diff --git a/system-variables.md b/system-variables.md index f030c70c3795..a06888e0d9c6 100644 --- a/system-variables.md +++ b/system-variables.md @@ -1029,13 +1029,19 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 ### `tidb_analyze_distsql_scan_concurrency` 从 v7.6.0 版本开始引入 +> **注意:** +> +> 在 v7.6.0 以下版本中,常规 `ANALYZE` 的 Region 扫描由 `tidb_distsql_scan_concurrency` 控制,而索引统计信息扫描由 `tidb_index_serial_scan_concurrency` 控制。因此,对于这些版本,如需调整扫描 TiKV Region 的并发,请考虑修改 `tidb_distsql_scan_concurrency` 的值。 + - 作用域:SESSION | GLOBAL - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:整数型 - 默认值:`4` - 范围:`[0, 4294967295]`。在 v8.2.0 之前版本中,最小值为 `1`。当设置为 `0` 时,TiDB 会根据集群规模自适应调整并发度。 -- 这个变量用来设置执行 `ANALYZE` 时 `scan` 操作的并发度。 +- 这个变量控制 `ANALYZE` 的以下并发相关方面: + - 扫描 TiKV Region 的并发度。 + - 扫描特殊索引 Region 的并发度,例如生成的虚拟列上的索引。 ### `tidb_analyze_partition_concurrency` @@ -1044,7 +1050,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 默认值:`2`。TiDB v7.4.0 及其之前版本默认值为 `1`。 - 范围:`[1, 128]`。在 v8.4.0 之前版本中,取值范围是 `[1, 18446744073709551615]`。 -- 这个变量用于 TiDB analyze 分区表时,写入分区表统计信息的并发度。 +- 对于手动 analyze 和自动 analyze,该变量控制保存 analyze 结果的并发度,包括将 TopN 和直方图写入系统表。 ### `tidb_analyze_version` 从 v5.1.0 版本开始引入 @@ -1085,7 +1091,7 @@ mysql> SELECT @@tidb_analyze_skip_column_types; +----------------------------------+ | @@tidb_analyze_skip_column_types | +----------------------------------+ -| json,blob,mediumblob,longblob | +| json,blob,mediumblob,longblob,mediumtext,longtext | +----------------------------------+ 1 row in set (0.00 sec) @@ -1183,7 +1189,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 类型:整数型 - 默认值:`1` - 范围:`[1, 256]` -- 这个变量用来设置执行统计信息自动更新的并发度。 +- 对于自动 analyze,该变量控制表或分区分析的并发度,例如可同时处理的分区或表任务数量。 ### `tidb_backoff_lock_fast` @@ -1292,8 +1298,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 单位:线程 - 默认值:`2`。TiDB v7.4.0 及其之前版本默认值为 `4`。 - 取值范围:`[1, 256]` -- 这个变量用来设置 ANALYZE 语句执行时并发度。 -- 当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。 +- 对于手动 analyze,该变量控制表或分区分析的并发度,例如可同时处理的分区或表任务数量。 ### `tidb_build_sampling_stats_concurrency` 从 v7.5.0 版本开始引入 @@ -1304,8 +1309,9 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 单位:线程 - 默认值:`2` - 取值范围:`[1, 256]` -- 这个变量用来设置 `ANALYZE` 过程中的采样并发度。 -- 当这个变量被设置得更大时,会对其它的查询语句执行性能产生一定影响。 +- 这个变量控制 `ANALYZE` 的以下并发相关方面: + - 合并从不同 Region 收集的样本的并发度。 + - 特殊索引(例如生成的虚拟列上的索引)的并发度,例如 TiDB 可同时为其收集统计信息的索引数量。 ### `tidb_capture_plan_baselines` 从 v4.0 版本开始引入 @@ -3134,6 +3140,10 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) ### `tidb_index_serial_scan_concurrency` +> **警告:** +> +> 该变量已废弃,不再控制执行行为。顺序索引扫描现在遵循 [`tidb_executor_concurrency`](#tidb_executor_concurrency-new-in-v50),而 [`ANALYZE TABLE`](/sql-statements/sql-statement-analyze-table.md) 使用 [`tidb_analyze_distsql_scan_concurrency`](#tidb_analyze_distsql_scan_concurrency-new-in-v760) 来控制索引读并发度。 + - 作用域:SESSION | GLOBAL - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:是 @@ -3141,7 +3151,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) - 默认值:`1` - 范围:`[1, 256]` - 单位:线程 -- 这个变量用来设置顺序 scan 操作的并发度,AP 类应用适合较大的值,TP 类应用适合较小的值。 +- 该变量仅为向后兼容而保留。调整 [`tidb_executor_concurrency`](#tidb_executor_concurrency-new-in-v50) 可影响顺序索引扫描,或调整 [`tidb_analyze_distsql_scan_concurrency`](#tidb_analyze_distsql_scan_concurrency-new-in-v760) 可调优索引统计信息收集。 ### `tidb_init_chunk_size` @@ -3545,7 +3555,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 默认值:`1` -- 这个变量用于 TiDB analyze 分区表时,对分区表统计信息进行合并时的并发度。 +- 这个变量控制分区表 TopN 结果合并的并发度。 ### `tidb_enable_async_merge_global_stats` 从 v7.5.0 版本开始引入 diff --git a/troubleshoot-tidb-oom.md b/troubleshoot-tidb-oom.md index cbd14a150492..538eb086a820 100644 --- a/troubleshoot-tidb-oom.md +++ b/troubleshoot-tidb-oom.md @@ -99,7 +99,6 @@ OOM 常见的故障现象包括(但不限于): - 调小同时读取的 Region 的数量,或降低算子并发度,以避免因高并发导致的内存问题。对应的系统变量包括: - [`tidb_distsql_scan_concurrency`](/system-variables.md#tidb_distsql_scan_concurrency) - - [`tidb_index_serial_scan_concurrency`](/system-variables.md#tidb_index_serial_scan_concurrency) - [`tidb_executor_concurrency`](/system-variables.md#tidb_executor_concurrency-从-v50-版本开始引入) - 问题发生时间附近,session 的并发度过高,此时可能需要添加节点进行扩容。 From 613c5fa83fd9d368a50197e3ee4735e1dfed39ea Mon Sep 17 00:00:00 2001 From: qiancai Date: Wed, 6 May 2026 18:07:28 +0800 Subject: [PATCH 2/3] revise translation --- best-practices/tidb-best-practices.md | 6 +++--- statistics.md | 16 ++++++++-------- system-variables.md | 24 ++++++++++++------------ 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/best-practices/tidb-best-practices.md b/best-practices/tidb-best-practices.md index ee13ff4ee544..f9afd8bc5adc 100644 --- a/best-practices/tidb-best-practices.md +++ b/best-practices/tidb-best-practices.md @@ -86,7 +86,7 @@ TiDB 支持完整的二级索引,并且是全局索引,很多查询可以通 TiDB 实现了[全局索引](/global-indexes.md),所以索引和 Table 中的数据并不一定在一个数据分片上。通过索引查询的时候,需要先扫描索引,得到对应的行 ID,然后通过行 ID 去取数据,所以可能会涉及到两次网络请求,会有一定的性能开销。 - 如果查询涉及到大量的行,那么扫描索引是并发进行,只要第一批结果已经返回,就可以开始去取 Table 的数据,所以这里是一个并行 + Pipeline 的模式,虽然有两次访问的开销,但是延时并不会很大。 + 如果查询涉及到大量的行,那么扫描索引是并发进行,只要第一批结果已经返回,就可以开始去取 Table 的数据,所以这里是一个并行 + Pipeline 的模式,虽然有两次访问的开销,但是延迟并不会很大。 以下情况不会涉及到两次访问的问题: @@ -103,7 +103,7 @@ TiDB 支持完整的二级索引,并且是全局索引,很多查询可以通 - [tidb_index_lookup_size](/system-variables.md#tidb_index_lookup_size) - 如果是需要访问索引获取行 ID 之后再访问 Table 数据,那么每次会把一批行 ID 作为一次请求去访问 Table 数据,这个参数可以设置 Batch 的大小,较大的 Batch 会使得延时增加,较小的 Batch 可能会造成更多的查询次数。这个参数的合适大小与查询涉及的数据量有关。一般不需要调整。 + 如果是需要访问索引获取行 ID 之后再访问 Table 数据,那么每次会把一批行 ID 作为一次请求去访问 Table 数据,这个参数可以设置 Batch 的大小,较大的 Batch 会使得延迟增加,较小的 Batch 可能会造成更多的查询次数。这个参数的合适大小与查询涉及的数据量有关。一般不需要调整。 - [tidb_index_lookup_concurrency](/system-variables.md#tidb_index_lookup_concurrency) @@ -111,7 +111,7 @@ TiDB 支持完整的二级索引,并且是全局索引,很多查询可以通 + 通过索引保证结果顺序 - 索引除了可以用来过滤数据之外,还能用来对数据排序,TiDB 首先按照索引的顺序获取行 ID,然后再按照这些行 ID 的顺序返回行的内容,这样可以保证返回结果按照索引列有序。前面提到了扫索引和获取 Row 之间是并行 + Pipeline 模式,如果要求按照索引的顺序返回 Row,那么这两次查询之间的高并发并不会降低延时,所以默认的并发度比较保守。可以通过调整 [`tidb_executor_concurrency`](/system-variables.md#tidb_executor_concurrency-new-in-v50) 来提高并发度。 + 索引除了可以用来过滤数据之外,还能用来对数据排序,TiDB 首先按照索引的顺序获取行 ID,然后再按照这些行 ID 的顺序返回行的内容,这样可以保证返回结果按照索引列有序。前面提到了扫索引和获取 Row 之间是并行 + Pipeline 模式,如果要求按照索引的顺序返回 Row,那么这两次查询之间的并发度设置的太高并不会降低延迟,所以默认的并发度比较保守。可以通过调整 [`tidb_executor_concurrency`](/system-variables.md#tidb_executor_concurrency-new-in-v50) 来提高并发度。 + 逆序索引 diff --git a/statistics.md b/statistics.md index 63d756d73ae4..9a2b3afa9d5c 100644 --- a/statistics.md +++ b/statistics.md @@ -688,29 +688,29 @@ mysql> SHOW WARNINGS; #### `tidb_build_stats_concurrency` -该变量控制表或分区分析的并发度(例如,可同时处理的分区或表任务数量)。其默认值是 `2`。TiDB v7.4.0 及其以下版本中,默认值为 `4`。 +该变量控制手动收集统计信息时,表或分区 `ANALYZE` 的并发度(例如,可同时 `ANALYZE` 的分区或表的数量)。其默认值是 `2`。在 TiDB v7.4.0 及之前的版本中,其默认值为 `4`。 #### `tidb_build_sampling_stats_concurrency` -该变量控制 `ANALYZE` 的以下并发相关方面: +该变量控制 `ANALYZE` 在以下方面的并发情况: - 合并从不同 Region 收集的样本时的并发度。 -- 特殊索引(例如基于生成虚拟列的索引)的并发度,例如 TiDB 可同时为其收集统计信息的索引数量。 +- 针对特殊索引(例如基于生成虚拟列的索引)的并发度,例如 TiDB 可同时为多少个特殊索引收集统计信息。 -其默认值是 `2`。 +其默认值为 `2`。 #### `tidb_analyze_partition_concurrency` -该变量控制保存 analyze 结果(将 TopN 和直方图写入系统表)的并发度。其默认值是 `2`。TiDB v7.4.0 及其以下版本中,默认值为 `1`。 +该变量控制保存 `ANALYZE` 结果(将 TopN 和直方图写入系统表)的并发度。其默认值为 `2`。在 TiDB v7.4.0 及之前的版本中,其默认值为 `1`。 #### `tidb_analyze_distsql_scan_concurrency` -该变量控制 `ANALYZE` 的以下并发相关方面: +该变量控制 `ANALYZE` 在以下方面的并发情况: - 扫描 TiKV Region 的并发度。 -- 扫描特殊索引(基于虚拟列生成的索引)对应 Region 的并发度。 +- 为特殊索引(基于虚拟列生成的索引)扫描 Region 的并发度。 -其默认值是 `4`。 +其默认值为 `4`。 ## 另请参阅 diff --git a/system-variables.md b/system-variables.md index a06888e0d9c6..652d2f965623 100644 --- a/system-variables.md +++ b/system-variables.md @@ -1031,7 +1031,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 > **注意:** > -> 在 v7.6.0 以下版本中,常规 `ANALYZE` 的 Region 扫描由 `tidb_distsql_scan_concurrency` 控制,而索引统计信息扫描由 `tidb_index_serial_scan_concurrency` 控制。因此,对于这些版本,如需调整扫描 TiKV Region 的并发,请考虑修改 `tidb_distsql_scan_concurrency` 的值。 +> 在 v7.6.0 之前的版本中,常规 `ANALYZE` 的 Region 扫描由 `tidb_distsql_scan_concurrency` 控制,而索引统计信息的扫描由 `tidb_index_serial_scan_concurrency` 控制。因此,对于这些版本,如需调整扫描 TiKV Region 的并发,可考虑修改 `tidb_distsql_scan_concurrency` 的值。 - 作用域:SESSION | GLOBAL - 是否持久化到集群:是 @@ -1039,9 +1039,9 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 - 类型:整数型 - 默认值:`4` - 范围:`[0, 4294967295]`。在 v8.2.0 之前版本中,最小值为 `1`。当设置为 `0` 时,TiDB 会根据集群规模自适应调整并发度。 -- 这个变量控制 `ANALYZE` 的以下并发相关方面: +- 这个变量控制 `ANALYZE` 在以下方面的并发情况: - 扫描 TiKV Region 的并发度。 - - 扫描特殊索引 Region 的并发度,例如生成的虚拟列上的索引。 + - 为特殊索引(例如,基于虚拟列生成的索引)扫描 Region 的并发度。 ### `tidb_analyze_partition_concurrency` @@ -1050,7 +1050,7 @@ MPP 是 TiFlash 引擎提供的分布式计算框架,允许节点之间的数 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 默认值:`2`。TiDB v7.4.0 及其之前版本默认值为 `1`。 - 范围:`[1, 128]`。在 v8.4.0 之前版本中,取值范围是 `[1, 18446744073709551615]`。 -- 对于手动 analyze 和自动 analyze,该变量控制保存 analyze 结果的并发度,包括将 TopN 和直方图写入系统表。 +- 对于手动 `ANALYZE` 和自动 `ANALYZE`,该变量控制保存 `ANALYZE` 结果的并发度,包括将 TopN 和直方图写入系统表的并发度。 ### `tidb_analyze_version` 从 v5.1.0 版本开始引入 @@ -1189,7 +1189,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 类型:整数型 - 默认值:`1` - 范围:`[1, 256]` -- 对于自动 analyze,该变量控制表或分区分析的并发度,例如可同时处理的分区或表任务数量。 +- 对于自动 `ANALYZE`,该变量控制表或分区 `ANALYZE` 的并发度,例如可同时 `ANALYZE` 的分区或表的数量。 ### `tidb_backoff_lock_fast` @@ -1298,7 +1298,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 单位:线程 - 默认值:`2`。TiDB v7.4.0 及其之前版本默认值为 `4`。 - 取值范围:`[1, 256]` -- 对于手动 analyze,该变量控制表或分区分析的并发度,例如可同时处理的分区或表任务数量。 +- 对于手动 `ANALYZE`,该变量控制表或分区 `ANALYZE` 的并发度,例如可同时 `ANALYZE` 的分区或表的数量。 ### `tidb_build_sampling_stats_concurrency` 从 v7.5.0 版本开始引入 @@ -1309,9 +1309,9 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 单位:线程 - 默认值:`2` - 取值范围:`[1, 256]` -- 这个变量控制 `ANALYZE` 的以下并发相关方面: +- 这个变量控制 `ANALYZE` 在以下方面的并发情况: - 合并从不同 Region 收集的样本的并发度。 - - 特殊索引(例如生成的虚拟列上的索引)的并发度,例如 TiDB 可同时为其收集统计信息的索引数量。 + - 针对特殊索引(例如,基于生成虚拟列的索引)的并发度,例如 TiDB 可同时为多少个特殊索引收集统计信息。 ### `tidb_capture_plan_baselines` 从 v4.0 版本开始引入 @@ -2766,7 +2766,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 类型:布尔型 - 默认值:`OFF` -- 该变量用于控制在悲观事务中,外键约束检查对父表中的行加锁时是否使用共享锁(而非排他锁)。开启后,多个并发事务可以同时对同一父表行执行外键检查而不互相阻塞,从而降低锁冲突并提升子表并发写入性能。 +- 该变量用于控制在悲观事务中,外键约束检查对父表中的行加锁时是否使用共享锁(而非排他锁)。开启后,多个并发事务可以同时对同一父表行执行外键检查而不互相阻塞,从而降低锁冲突并提升子表并发写入性能。 ### `tidb_gc_concurrency` 从 v5.0 版本开始引入 @@ -3142,7 +3142,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) > **警告:** > -> 该变量已废弃,不再控制执行行为。顺序索引扫描现在遵循 [`tidb_executor_concurrency`](#tidb_executor_concurrency-new-in-v50),而 [`ANALYZE TABLE`](/sql-statements/sql-statement-analyze-table.md) 使用 [`tidb_analyze_distsql_scan_concurrency`](#tidb_analyze_distsql_scan_concurrency-new-in-v760) 来控制索引读并发度。 +> 该变量已废弃,不再控制执行行为。顺序索引扫描目前可通过 [`tidb_executor_concurrency`](#tidb_executor_concurrency-new-in-v50) 控制并发度,而索引读取则可通过 [`ANALYZE TABLE`](/sql-statements/sql-statement-analyze-table.md) 的 [`tidb_analyze_distsql_scan_concurrency`](#tidb_analyze_distsql_scan_concurrency-new-in-v760) 控制并发度。 - 作用域:SESSION | GLOBAL - 是否持久化到集群:是 @@ -3151,7 +3151,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) - 默认值:`1` - 范围:`[1, 256]` - 单位:线程 -- 该变量仅为向后兼容而保留。调整 [`tidb_executor_concurrency`](#tidb_executor_concurrency-new-in-v50) 可影响顺序索引扫描,或调整 [`tidb_analyze_distsql_scan_concurrency`](#tidb_analyze_distsql_scan_concurrency-new-in-v760) 可调优索引统计信息收集。 +- 该变量仅为向后兼容而保留。你可以通过调整 [`tidb_executor_concurrency`](#tidb_executor_concurrency-new-in-v50) 控制顺序索引扫描并发度,或通过调整 [`tidb_analyze_distsql_scan_concurrency`](#tidb_analyze_distsql_scan_concurrency-new-in-v760) 调优索引统计信息收集。 ### `tidb_init_chunk_size` @@ -3555,7 +3555,7 @@ v5.0 后,用户仍可以单独修改以上系统变量(会有废弃警告) - 是否持久化到集群:是 - 是否受 Hint [SET_VAR](/optimizer-hints.md#set_varvar_namevar_value) 控制:否 - 默认值:`1` -- 这个变量控制分区表 TopN 结果合并的并发度。 +- 这个变量控制合并分区表中 TopN 结果的并发度。 ### `tidb_enable_async_merge_global_stats` 从 v7.5.0 版本开始引入 From 3b9aef835f2b9e36f1fd85866e7e5aa337b96d1a Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Thu, 7 May 2026 18:35:47 +0800 Subject: [PATCH 3/3] Apply suggestions from code review --- statistics.md | 2 +- system-variables.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/statistics.md b/statistics.md index 9a2b3afa9d5c..a7affd0efcf8 100644 --- a/statistics.md +++ b/statistics.md @@ -688,7 +688,7 @@ mysql> SHOW WARNINGS; #### `tidb_build_stats_concurrency` -该变量控制手动收集统计信息时,表或分区 `ANALYZE` 的并发度(例如,可同时 `ANALYZE` 的分区或表的数量)。其默认值是 `2`。在 TiDB v7.4.0 及之前的版本中,其默认值为 `4`。 +该变量控制手动收集统计信息时,构建统计信息的并发度,例如可以同时处理的表或分区的分析任务的数量。其默认值是 `2`。在 TiDB v7.4.0 及之前的版本中,其默认值为 `4`。 #### `tidb_build_sampling_stats_concurrency` diff --git a/system-variables.md b/system-variables.md index 652d2f965623..3abbef8a375d 100644 --- a/system-variables.md +++ b/system-variables.md @@ -1189,7 +1189,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 类型:整数型 - 默认值:`1` - 范围:`[1, 256]` -- 对于自动 `ANALYZE`,该变量控制表或分区 `ANALYZE` 的并发度,例如可同时 `ANALYZE` 的分区或表的数量。 +- 该变量控制自动收集统计信息时,构建统计信息的并发度,例如可以同时处理的表或分区的分析任务的数量。 ### `tidb_backoff_lock_fast` @@ -1298,7 +1298,7 @@ mysql> SELECT job_info FROM mysql.analyze_jobs ORDER BY end_time DESC LIMIT 1; - 单位:线程 - 默认值:`2`。TiDB v7.4.0 及其之前版本默认值为 `4`。 - 取值范围:`[1, 256]` -- 对于手动 `ANALYZE`,该变量控制表或分区 `ANALYZE` 的并发度,例如可同时 `ANALYZE` 的分区或表的数量。 +- 该变量控制手动收集统计信息时,构建统计信息的并发度,例如可以同时处理的表或分区的分析任务的数量。 ### `tidb_build_sampling_stats_concurrency` 从 v7.5.0 版本开始引入