From 4349ad01e88c8fc81eb3a4b354d4a48437a98d92 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 30 Mar 2026 16:00:24 +0800 Subject: [PATCH 1/4] This is an automated cherry-pick of #21468 Signed-off-by: ti-chi-bot --- .../information-schema-slow-query.md | 199 ++++++++++++++++++ ...erformance-schema-session-connect-attrs.md | 15 ++ status-variables.md | 12 ++ system-variable-reference.md | 7 + system-variables.md | 20 ++ 5 files changed, 253 insertions(+) diff --git a/information-schema/information-schema-slow-query.md b/information-schema/information-schema-slow-query.md index 0bd57b427913..b59bb00736a8 100644 --- a/information-schema/information-schema-slow-query.md +++ b/information-schema/information-schema-slow-query.md @@ -15,6 +15,7 @@ DESC slow_query; 输出结果示例如下: ```sql +<<<<<<< HEAD +-------------------------------+---------------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------------------+---------------------+------+------+---------+-------+ @@ -101,10 +102,109 @@ DESC slow_query; | Query | longtext | YES | | NULL | | +-------------------------------+---------------------+------+------+---------+-------+ 81 rows in set (0.00 sec) +======= ++--------------------------------------------+-----------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------------------------------------------+-----------------+------+------+---------+-------+ +| Time | timestamp(6) | NO | PRI | NULL | | +| Txn_start_ts | bigint unsigned | YES | | NULL | | +| User | varchar(64) | YES | | NULL | | +| Host | varchar(64) | YES | | NULL | | +| Conn_ID | bigint unsigned | YES | | NULL | | +| Session_alias | varchar(64) | YES | | NULL | | +| Exec_retry_count | bigint unsigned | YES | | NULL | | +| Exec_retry_time | double | YES | | NULL | | +| Query_time | double | YES | | NULL | | +| Parse_time | double | YES | | NULL | | +| Compile_time | double | YES | | NULL | | +| Rewrite_time | double | YES | | NULL | | +| Preproc_subqueries | bigint unsigned | YES | | NULL | | +| Preproc_subqueries_time | double | YES | | NULL | | +| Optimize_time | double | YES | | NULL | | +| Wait_TS | double | YES | | NULL | | +| Prewrite_time | double | YES | | NULL | | +| Wait_prewrite_binlog_time | double | YES | | NULL | | +| Commit_time | double | YES | | NULL | | +| Get_commit_ts_time | double | YES | | NULL | | +| Commit_backoff_time | double | YES | | NULL | | +| Backoff_types | varchar(64) | YES | | NULL | | +| Resolve_lock_time | double | YES | | NULL | | +| Local_latch_wait_time | double | YES | | NULL | | +| Write_keys | bigint | YES | | NULL | | +| Write_size | bigint | YES | | NULL | | +| Prewrite_region | bigint | YES | | NULL | | +| Txn_retry | bigint | YES | | NULL | | +| Cop_time | double | YES | | NULL | | +| Process_time | double | YES | | NULL | | +| Wait_time | double | YES | | NULL | | +| Backoff_time | double | YES | | NULL | | +| LockKeys_time | double | YES | | NULL | | +| Request_count | bigint unsigned | YES | | NULL | | +| Total_keys | bigint unsigned | YES | | NULL | | +| Process_keys | bigint unsigned | YES | | NULL | | +| Rocksdb_delete_skipped_count | bigint unsigned | YES | | NULL | | +| Rocksdb_key_skipped_count | bigint unsigned | YES | | NULL | | +| Rocksdb_block_cache_hit_count | bigint unsigned | YES | | NULL | | +| Rocksdb_block_read_count | bigint unsigned | YES | | NULL | | +| Rocksdb_block_read_byte | bigint unsigned | YES | | NULL | | +| DB | varchar(64) | YES | | NULL | | +| Index_names | varchar(100) | YES | | NULL | | +| Is_internal | tinyint(1) | YES | | NULL | | +| Digest | varchar(64) | YES | | NULL | | +| Stats | varchar(512) | YES | | NULL | | +| Cop_proc_avg | double | YES | | NULL | | +| Cop_proc_p90 | double | YES | | NULL | | +| Cop_proc_max | double | YES | | NULL | | +| Cop_proc_addr | varchar(64) | YES | | NULL | | +| Cop_wait_avg | double | YES | | NULL | | +| Cop_wait_p90 | double | YES | | NULL | | +| Cop_wait_max | double | YES | | NULL | | +| Cop_wait_addr | varchar(64) | YES | | NULL | | +| Mem_max | bigint | YES | | NULL | | +| Disk_max | bigint | YES | | NULL | | +| KV_total | double | YES | | NULL | | +| PD_total | double | YES | | NULL | | +| Backoff_total | double | YES | | NULL | | +| Unpacked_bytes_sent_tikv_total | bigint | YES | | NULL | | +| Unpacked_bytes_received_tikv_total | bigint | YES | | NULL | | +| Unpacked_bytes_sent_tikv_cross_zone | bigint | YES | | NULL | | +| Unpacked_bytes_received_tikv_cross_zone | bigint | YES | | NULL | | +| Unpacked_bytes_sent_tiflash_total | bigint | YES | | NULL | | +| Unpacked_bytes_received_tiflash_total | bigint | YES | | NULL | | +| Unpacked_bytes_sent_tiflash_cross_zone | bigint | YES | | NULL | | +| Unpacked_bytes_received_tiflash_cross_zone | bigint | YES | | NULL | | +| Write_sql_response_total | double | YES | | NULL | | +| Result_rows | bigint | YES | | NULL | | +| Warnings | longtext | YES | | NULL | | +| Backoff_Detail | varchar(4096) | YES | | NULL | | +| Prepared | tinyint(1) | YES | | NULL | | +| Succ | tinyint(1) | YES | | NULL | | +| IsExplicitTxn | tinyint(1) | YES | | NULL | | +| IsWriteCacheTable | tinyint(1) | YES | | NULL | | +| Plan_from_cache | tinyint(1) | YES | | NULL | | +| Plan_from_binding | tinyint(1) | YES | | NULL | | +| Has_more_results | tinyint(1) | YES | | NULL | | +| Resource_group | varchar(64) | YES | | NULL | | +| Request_unit_read | double | YES | | NULL | | +| Request_unit_write | double | YES | | NULL | | +| Time_queued_by_rc | double | YES | | NULL | | +| Tidb_cpu_time | double | YES | | NULL | | +| Tikv_cpu_time | double | YES | | NULL | | +| Plan | longtext | YES | | NULL | | +| Plan_digest | varchar(128) | YES | | NULL | | +| Binary_plan | longtext | YES | | NULL | | +| Prev_stmt | longtext | YES | | NULL | | +| Session_connect_attrs | json | YES | | NULL | | +| Query | longtext | YES | | NULL | | ++--------------------------------------------+-----------------+------+------+---------+-------+ +90 rows in set (0.00 sec) +>>>>>>> 69e69969b0 (docs: support logging session connect attrs to slow query log (#21468)) ``` `Query` 列的语句长度上限由系统变量 [`tidb_stmt_summary_max_sql_length`](/system-variables.md#tidb_stmt_summary_max_sql_length-从-v40-版本开始引入) 控制。 +`Session_connect_attrs` 列以 JSON 格式存储从慢日志解析出的会话连接属性。TiDB 通过 [`performance_schema_session_connect_attrs_size`](/system-variables.md#performance_schema_session_connect_attrs_size-从-v900-版本开始引入) 系统变量来控制写入此字段的最大负载大小。 + ## CLUSTER_SLOW_QUERY table `CLUSTER_SLOW_QUERY` 表中提供了集群所有节点的慢查询相关的信息,其内容通过解析 TiDB 慢查询日志而来,该表使用上和 `SLOW_QUERY` 表一样。`CLUSTER_SLOW_QUERY` 表结构上比 `SLOW_QUERY` 多一列 `INSTANCE`,表示该行慢查询信息来自的 TiDB 节点地址。关于如何使用该表调查和改善慢查询,请参考[慢查询日志文档](/identify-slow-queries.md)。 @@ -116,6 +216,7 @@ DESC CLUSTER_SLOW_QUERY; 输出结果示例如下: ```sql +<<<<<<< HEAD +-------------------------------+---------------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------------------+---------------------+------+------+---------+-------+ @@ -203,6 +304,104 @@ DESC CLUSTER_SLOW_QUERY; | Query | longtext | YES | | NULL | | +-------------------------------+---------------------+------+------+---------+-------+ 82 rows in set (0.00 sec) +======= ++--------------------------------------------+-----------------+------+------+---------+-------+ +| Field | Type | Null | Key | Default | Extra | ++--------------------------------------------+-----------------+------+------+---------+-------+ +| INSTANCE | varchar(64) | YES | | NULL | | +| Time | timestamp(6) | NO | PRI | NULL | | +| Txn_start_ts | bigint unsigned | YES | | NULL | | +| User | varchar(64) | YES | | NULL | | +| Host | varchar(64) | YES | | NULL | | +| Conn_ID | bigint unsigned | YES | | NULL | | +| Session_alias | varchar(64) | YES | | NULL | | +| Exec_retry_count | bigint unsigned | YES | | NULL | | +| Exec_retry_time | double | YES | | NULL | | +| Query_time | double | YES | | NULL | | +| Parse_time | double | YES | | NULL | | +| Compile_time | double | YES | | NULL | | +| Rewrite_time | double | YES | | NULL | | +| Preproc_subqueries | bigint unsigned | YES | | NULL | | +| Preproc_subqueries_time | double | YES | | NULL | | +| Optimize_time | double | YES | | NULL | | +| Wait_TS | double | YES | | NULL | | +| Prewrite_time | double | YES | | NULL | | +| Wait_prewrite_binlog_time | double | YES | | NULL | | +| Commit_time | double | YES | | NULL | | +| Get_commit_ts_time | double | YES | | NULL | | +| Commit_backoff_time | double | YES | | NULL | | +| Backoff_types | varchar(64) | YES | | NULL | | +| Resolve_lock_time | double | YES | | NULL | | +| Local_latch_wait_time | double | YES | | NULL | | +| Write_keys | bigint | YES | | NULL | | +| Write_size | bigint | YES | | NULL | | +| Prewrite_region | bigint | YES | | NULL | | +| Txn_retry | bigint | YES | | NULL | | +| Cop_time | double | YES | | NULL | | +| Process_time | double | YES | | NULL | | +| Wait_time | double | YES | | NULL | | +| Backoff_time | double | YES | | NULL | | +| LockKeys_time | double | YES | | NULL | | +| Request_count | bigint unsigned | YES | | NULL | | +| Total_keys | bigint unsigned | YES | | NULL | | +| Process_keys | bigint unsigned | YES | | NULL | | +| Rocksdb_delete_skipped_count | bigint unsigned | YES | | NULL | | +| Rocksdb_key_skipped_count | bigint unsigned | YES | | NULL | | +| Rocksdb_block_cache_hit_count | bigint unsigned | YES | | NULL | | +| Rocksdb_block_read_count | bigint unsigned | YES | | NULL | | +| Rocksdb_block_read_byte | bigint unsigned | YES | | NULL | | +| DB | varchar(64) | YES | | NULL | | +| Index_names | varchar(100) | YES | | NULL | | +| Is_internal | tinyint(1) | YES | | NULL | | +| Digest | varchar(64) | YES | | NULL | | +| Stats | varchar(512) | YES | | NULL | | +| Cop_proc_avg | double | YES | | NULL | | +| Cop_proc_p90 | double | YES | | NULL | | +| Cop_proc_max | double | YES | | NULL | | +| Cop_proc_addr | varchar(64) | YES | | NULL | | +| Cop_wait_avg | double | YES | | NULL | | +| Cop_wait_p90 | double | YES | | NULL | | +| Cop_wait_max | double | YES | | NULL | | +| Cop_wait_addr | varchar(64) | YES | | NULL | | +| Mem_max | bigint | YES | | NULL | | +| Disk_max | bigint | YES | | NULL | | +| KV_total | double | YES | | NULL | | +| PD_total | double | YES | | NULL | | +| Backoff_total | double | YES | | NULL | | +| Unpacked_bytes_sent_tikv_total | bigint | YES | | NULL | | +| Unpacked_bytes_received_tikv_total | bigint | YES | | NULL | | +| Unpacked_bytes_sent_tikv_cross_zone | bigint | YES | | NULL | | +| Unpacked_bytes_received_tikv_cross_zone | bigint | YES | | NULL | | +| Unpacked_bytes_sent_tiflash_total | bigint | YES | | NULL | | +| Unpacked_bytes_received_tiflash_total | bigint | YES | | NULL | | +| Unpacked_bytes_sent_tiflash_cross_zone | bigint | YES | | NULL | | +| Unpacked_bytes_received_tiflash_cross_zone | bigint | YES | | NULL | | +| Write_sql_response_total | double | YES | | NULL | | +| Result_rows | bigint | YES | | NULL | | +| Warnings | longtext | YES | | NULL | | +| Backoff_Detail | varchar(4096) | YES | | NULL | | +| Prepared | tinyint(1) | YES | | NULL | | +| Succ | tinyint(1) | YES | | NULL | | +| IsExplicitTxn | tinyint(1) | YES | | NULL | | +| IsWriteCacheTable | tinyint(1) | YES | | NULL | | +| Plan_from_cache | tinyint(1) | YES | | NULL | | +| Plan_from_binding | tinyint(1) | YES | | NULL | | +| Has_more_results | tinyint(1) | YES | | NULL | | +| Resource_group | varchar(64) | YES | | NULL | | +| Request_unit_read | double | YES | | NULL | | +| Request_unit_write | double | YES | | NULL | | +| Time_queued_by_rc | double | YES | | NULL | | +| Tidb_cpu_time | double | YES | | NULL | | +| Tikv_cpu_time | double | YES | | NULL | | +| Plan | longtext | YES | | NULL | | +| Plan_digest | varchar(128) | YES | | NULL | | +| Binary_plan | longtext | YES | | NULL | | +| Prev_stmt | longtext | YES | | NULL | | +| Session_connect_attrs | json | YES | | NULL | | +| Query | longtext | YES | | NULL | | ++--------------------------------------------+-----------------+------+------+---------+-------+ +91 rows in set (0.00 sec) +>>>>>>> 69e69969b0 (docs: support logging session connect attrs to slow query log (#21468)) ``` 查询集群系统表时,TiDB 也会将相关计算下推给其他节点执行,而不是把所有节点的数据都取回来,可以查看执行计划,如下: diff --git a/performance-schema/performance-schema-session-connect-attrs.md b/performance-schema/performance-schema-session-connect-attrs.md index b39d25415f9d..68a914c6b70b 100644 --- a/performance-schema/performance-schema-session-connect-attrs.md +++ b/performance-schema/performance-schema-session-connect-attrs.md @@ -62,3 +62,18 @@ TABLE SESSION_CONNECT_ATTRS; * `ATTR_NAME`:属性名。 * `ATTR_VALUE`:属性值。 * `ORDINAL_POSITION`:属性名/属性值对的序号。 + +## 大小限制与截断 + +TiDB 使用全局系统变量 [`performance_schema_session_connect_attrs_size`](/system-variables.md#performance_schema_session_connect_attrs_size-从-v900-版本开始引入) 来控制每个会话连接属性的最大总大小。 + +- 默认值:`4096` 字节 +- 取值范围:`[-1, 65536]` +- `-1` 表示不配置限制,TiDB 会将其视为最大 `65536` 字节。 +- `0` 表示 TiDB 不会保留客户端提供的会话连接属性,禁用会话属性记录。 + +当总大小超过该限制时,TiDB 会截断超出的属性,并添加 `_truncated` 来表示被截断的字节数。 + +已接受的连接属性也会写入慢日志中的 `Session_connect_attrs` 字段,并可通过 [`INFORMATION_SCHEMA.SLOW_QUERY`](/information-schema/information-schema-slow-query.md) 和 `INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY` 查询。若要控制写入慢日志的负载大小,可调整 `performance_schema_session_connect_attrs_size`。 + +此外,TiDB 还会对握手包中的连接属性负载强制施加 1 MiB 的硬性限制。若超过该硬性限制,连接将被拒绝。 diff --git a/status-variables.md b/status-variables.md index 747a04bd2448..fb9e7a4282c7 100644 --- a/status-variables.md +++ b/status-variables.md @@ -31,6 +31,18 @@ summary: 使用状态变量查看系统和会话状态。 - 类型:整数型 - MySQL 协议使用的压缩等级。 +### Performance_schema_session_connect_attrs_longest_seen + +- 作用域:GLOBAL +- 类型:整数型 +- TiDB 观测到的会话连接属性的最大总大小(单位为字节 bytes)。 + +### Performance_schema_session_connect_attrs_lost + +- 作用域:GLOBAL +- 类型:整数型 +- 由于 `performance_schema_session_connect_attrs_size` 而导致连接属性被截断的会话数量。 + ### Ssl_cipher - 作用域:SESSION | GLOBAL diff --git a/system-variable-reference.md b/system-variable-reference.md index 2aff144c705c..76694ea91024 100644 --- a/system-variable-reference.md +++ b/system-variable-reference.md @@ -589,6 +589,13 @@ summary: 查看 TiDB 所有的系统变量,以及引用这些变量的文档 - [TiDB 8.5.0 Release Notes](/releases/release-8.5.0.md) - [TiDB 7.6.0 Release Notes](/releases/release-7.6.0.md) +### performance_schema_session_connect_attrs_size + +引用该变量的文档: + +- [`SESSION_CONNECT_ATTRS`](/performance-schema/performance-schema-session-connect-attrs.md) +- [System Variables](/system-variables.md#performance_schema_session_connect_attrs_size-从-v900-版本开始引入) + ### plugin_dir 引用该变量的文档: diff --git a/system-variables.md b/system-variables.md index d41ee7196abd..51b606773db1 100644 --- a/system-variables.md +++ b/system-variables.md @@ -731,6 +731,26 @@ mysql> SHOW GLOBAL VARIABLES LIKE 'max_prepared_stmt_count'; - 集群 Region 数量较多,PD leader 由于处理心跳和调度任务的开销大,导致 CPU 资源紧张。 - 集群中 TiDB 实例数量较多,Region 信息请求并发量较大,PD leader CPU 压力大。 +### `performance_schema_session_connect_attrs_size` 从 v9.0.0 版本开始引入 + +- 作用域:GLOBAL +- 是否持久化到集群:是 +- 是否适用于 Hint [`SET_VAR`](/optimizer-hints.md#set_varvar_namevar_value):否 +- 类型:整数型 +- 默认值:`4096` +- 取值范围:`[-1, 65536]` +- 单位:Bytes +- 控制每个会话连接属性的最大总大小。 +- 如果连接属性的总大小超过此值,TiDB 会截断超出的属性,并添加 `_truncated` 来表示被截断的字节数。 +- 在此限制内被接受的连接属性会写入慢日志中的 `Session_connect_attrs` 字段,并可通过 [`INFORMATION_SCHEMA.SLOW_QUERY`](/information-schema/information-schema-slow-query.md) 和 `INFORMATION_SCHEMA.CLUSTER_SLOW_QUERY` 查询。 +- 你可以通过调整此变量来控制慢日志中记录的 `Session_connect_attrs` 大小。 +- 如果该值设置为 `-1`,表示未配置限制,TiDB 会将其视为最大 `65536` 字节。 +- 如果该值设置为 `0`,TiDB 不会保留客户端提供的会话连接属性,这实际上会禁用会话属性记录。 + +> **注意:** +> +> TiDB 对握手连接属性强制施加 1 MiB 的硬性限制。若超过该硬性限制,连接将被拒绝。 + ### `plugin_dir` - 作用域:GLOBAL From 3cf863f8aa471309b1631221b722dfe31653d0f8 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 20 Apr 2026 09:38:39 +0800 Subject: [PATCH 2/4] Update information-schema-slow-query.md --- .../information-schema-slow-query.md | 100 +----------------- 1 file changed, 1 insertion(+), 99 deletions(-) diff --git a/information-schema/information-schema-slow-query.md b/information-schema/information-schema-slow-query.md index b59bb00736a8..8b1088a5a465 100644 --- a/information-schema/information-schema-slow-query.md +++ b/information-schema/information-schema-slow-query.md @@ -216,7 +216,6 @@ DESC CLUSTER_SLOW_QUERY; 输出结果示例如下: ```sql -<<<<<<< HEAD +-------------------------------+---------------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------------------+---------------------+------+------+---------+-------+ @@ -301,107 +300,10 @@ DESC CLUSTER_SLOW_QUERY; | Plan_digest | varchar(128) | YES | | NULL | | | Binary_plan | longtext | YES | | NULL | | | Prev_stmt | longtext | YES | | NULL | | +| Session_connect_attrs | json | YES | | NULL | | | Query | longtext | YES | | NULL | | +-------------------------------+---------------------+------+------+---------+-------+ 82 rows in set (0.00 sec) -======= -+--------------------------------------------+-----------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+--------------------------------------------+-----------------+------+------+---------+-------+ -| INSTANCE | varchar(64) | YES | | NULL | | -| Time | timestamp(6) | NO | PRI | NULL | | -| Txn_start_ts | bigint unsigned | YES | | NULL | | -| User | varchar(64) | YES | | NULL | | -| Host | varchar(64) | YES | | NULL | | -| Conn_ID | bigint unsigned | YES | | NULL | | -| Session_alias | varchar(64) | YES | | NULL | | -| Exec_retry_count | bigint unsigned | YES | | NULL | | -| Exec_retry_time | double | YES | | NULL | | -| Query_time | double | YES | | NULL | | -| Parse_time | double | YES | | NULL | | -| Compile_time | double | YES | | NULL | | -| Rewrite_time | double | YES | | NULL | | -| Preproc_subqueries | bigint unsigned | YES | | NULL | | -| Preproc_subqueries_time | double | YES | | NULL | | -| Optimize_time | double | YES | | NULL | | -| Wait_TS | double | YES | | NULL | | -| Prewrite_time | double | YES | | NULL | | -| Wait_prewrite_binlog_time | double | YES | | NULL | | -| Commit_time | double | YES | | NULL | | -| Get_commit_ts_time | double | YES | | NULL | | -| Commit_backoff_time | double | YES | | NULL | | -| Backoff_types | varchar(64) | YES | | NULL | | -| Resolve_lock_time | double | YES | | NULL | | -| Local_latch_wait_time | double | YES | | NULL | | -| Write_keys | bigint | YES | | NULL | | -| Write_size | bigint | YES | | NULL | | -| Prewrite_region | bigint | YES | | NULL | | -| Txn_retry | bigint | YES | | NULL | | -| Cop_time | double | YES | | NULL | | -| Process_time | double | YES | | NULL | | -| Wait_time | double | YES | | NULL | | -| Backoff_time | double | YES | | NULL | | -| LockKeys_time | double | YES | | NULL | | -| Request_count | bigint unsigned | YES | | NULL | | -| Total_keys | bigint unsigned | YES | | NULL | | -| Process_keys | bigint unsigned | YES | | NULL | | -| Rocksdb_delete_skipped_count | bigint unsigned | YES | | NULL | | -| Rocksdb_key_skipped_count | bigint unsigned | YES | | NULL | | -| Rocksdb_block_cache_hit_count | bigint unsigned | YES | | NULL | | -| Rocksdb_block_read_count | bigint unsigned | YES | | NULL | | -| Rocksdb_block_read_byte | bigint unsigned | YES | | NULL | | -| DB | varchar(64) | YES | | NULL | | -| Index_names | varchar(100) | YES | | NULL | | -| Is_internal | tinyint(1) | YES | | NULL | | -| Digest | varchar(64) | YES | | NULL | | -| Stats | varchar(512) | YES | | NULL | | -| Cop_proc_avg | double | YES | | NULL | | -| Cop_proc_p90 | double | YES | | NULL | | -| Cop_proc_max | double | YES | | NULL | | -| Cop_proc_addr | varchar(64) | YES | | NULL | | -| Cop_wait_avg | double | YES | | NULL | | -| Cop_wait_p90 | double | YES | | NULL | | -| Cop_wait_max | double | YES | | NULL | | -| Cop_wait_addr | varchar(64) | YES | | NULL | | -| Mem_max | bigint | YES | | NULL | | -| Disk_max | bigint | YES | | NULL | | -| KV_total | double | YES | | NULL | | -| PD_total | double | YES | | NULL | | -| Backoff_total | double | YES | | NULL | | -| Unpacked_bytes_sent_tikv_total | bigint | YES | | NULL | | -| Unpacked_bytes_received_tikv_total | bigint | YES | | NULL | | -| Unpacked_bytes_sent_tikv_cross_zone | bigint | YES | | NULL | | -| Unpacked_bytes_received_tikv_cross_zone | bigint | YES | | NULL | | -| Unpacked_bytes_sent_tiflash_total | bigint | YES | | NULL | | -| Unpacked_bytes_received_tiflash_total | bigint | YES | | NULL | | -| Unpacked_bytes_sent_tiflash_cross_zone | bigint | YES | | NULL | | -| Unpacked_bytes_received_tiflash_cross_zone | bigint | YES | | NULL | | -| Write_sql_response_total | double | YES | | NULL | | -| Result_rows | bigint | YES | | NULL | | -| Warnings | longtext | YES | | NULL | | -| Backoff_Detail | varchar(4096) | YES | | NULL | | -| Prepared | tinyint(1) | YES | | NULL | | -| Succ | tinyint(1) | YES | | NULL | | -| IsExplicitTxn | tinyint(1) | YES | | NULL | | -| IsWriteCacheTable | tinyint(1) | YES | | NULL | | -| Plan_from_cache | tinyint(1) | YES | | NULL | | -| Plan_from_binding | tinyint(1) | YES | | NULL | | -| Has_more_results | tinyint(1) | YES | | NULL | | -| Resource_group | varchar(64) | YES | | NULL | | -| Request_unit_read | double | YES | | NULL | | -| Request_unit_write | double | YES | | NULL | | -| Time_queued_by_rc | double | YES | | NULL | | -| Tidb_cpu_time | double | YES | | NULL | | -| Tikv_cpu_time | double | YES | | NULL | | -| Plan | longtext | YES | | NULL | | -| Plan_digest | varchar(128) | YES | | NULL | | -| Binary_plan | longtext | YES | | NULL | | -| Prev_stmt | longtext | YES | | NULL | | -| Session_connect_attrs | json | YES | | NULL | | -| Query | longtext | YES | | NULL | | -+--------------------------------------------+-----------------+------+------+---------+-------+ -91 rows in set (0.00 sec) ->>>>>>> 69e69969b0 (docs: support logging session connect attrs to slow query log (#21468)) ``` 查询集群系统表时,TiDB 也会将相关计算下推给其他节点执行,而不是把所有节点的数据都取回来,可以查看执行计划,如下: From 329cd38c05ad293279193c52df5f9209a9efeb1d Mon Sep 17 00:00:00 2001 From: houfaxin Date: Mon, 20 Apr 2026 09:40:02 +0800 Subject: [PATCH 3/4] Update information-schema-slow-query.md --- .../information-schema-slow-query.md | 103 +----------------- 1 file changed, 3 insertions(+), 100 deletions(-) diff --git a/information-schema/information-schema-slow-query.md b/information-schema/information-schema-slow-query.md index 8b1088a5a465..f678d9ec7983 100644 --- a/information-schema/information-schema-slow-query.md +++ b/information-schema/information-schema-slow-query.md @@ -15,7 +15,6 @@ DESC slow_query; 输出结果示例如下: ```sql -<<<<<<< HEAD +-------------------------------+---------------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------------------+---------------------+------+------+---------+-------+ @@ -99,106 +98,10 @@ DESC slow_query; | Plan_digest | varchar(128) | YES | | NULL | | | Binary_plan | longtext | YES | | NULL | | | Prev_stmt | longtext | YES | | NULL | | +| Session_connect_attrs | json | YES | | NULL | | | Query | longtext | YES | | NULL | | +-------------------------------+---------------------+------+------+---------+-------+ -81 rows in set (0.00 sec) -======= -+--------------------------------------------+-----------------+------+------+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+--------------------------------------------+-----------------+------+------+---------+-------+ -| Time | timestamp(6) | NO | PRI | NULL | | -| Txn_start_ts | bigint unsigned | YES | | NULL | | -| User | varchar(64) | YES | | NULL | | -| Host | varchar(64) | YES | | NULL | | -| Conn_ID | bigint unsigned | YES | | NULL | | -| Session_alias | varchar(64) | YES | | NULL | | -| Exec_retry_count | bigint unsigned | YES | | NULL | | -| Exec_retry_time | double | YES | | NULL | | -| Query_time | double | YES | | NULL | | -| Parse_time | double | YES | | NULL | | -| Compile_time | double | YES | | NULL | | -| Rewrite_time | double | YES | | NULL | | -| Preproc_subqueries | bigint unsigned | YES | | NULL | | -| Preproc_subqueries_time | double | YES | | NULL | | -| Optimize_time | double | YES | | NULL | | -| Wait_TS | double | YES | | NULL | | -| Prewrite_time | double | YES | | NULL | | -| Wait_prewrite_binlog_time | double | YES | | NULL | | -| Commit_time | double | YES | | NULL | | -| Get_commit_ts_time | double | YES | | NULL | | -| Commit_backoff_time | double | YES | | NULL | | -| Backoff_types | varchar(64) | YES | | NULL | | -| Resolve_lock_time | double | YES | | NULL | | -| Local_latch_wait_time | double | YES | | NULL | | -| Write_keys | bigint | YES | | NULL | | -| Write_size | bigint | YES | | NULL | | -| Prewrite_region | bigint | YES | | NULL | | -| Txn_retry | bigint | YES | | NULL | | -| Cop_time | double | YES | | NULL | | -| Process_time | double | YES | | NULL | | -| Wait_time | double | YES | | NULL | | -| Backoff_time | double | YES | | NULL | | -| LockKeys_time | double | YES | | NULL | | -| Request_count | bigint unsigned | YES | | NULL | | -| Total_keys | bigint unsigned | YES | | NULL | | -| Process_keys | bigint unsigned | YES | | NULL | | -| Rocksdb_delete_skipped_count | bigint unsigned | YES | | NULL | | -| Rocksdb_key_skipped_count | bigint unsigned | YES | | NULL | | -| Rocksdb_block_cache_hit_count | bigint unsigned | YES | | NULL | | -| Rocksdb_block_read_count | bigint unsigned | YES | | NULL | | -| Rocksdb_block_read_byte | bigint unsigned | YES | | NULL | | -| DB | varchar(64) | YES | | NULL | | -| Index_names | varchar(100) | YES | | NULL | | -| Is_internal | tinyint(1) | YES | | NULL | | -| Digest | varchar(64) | YES | | NULL | | -| Stats | varchar(512) | YES | | NULL | | -| Cop_proc_avg | double | YES | | NULL | | -| Cop_proc_p90 | double | YES | | NULL | | -| Cop_proc_max | double | YES | | NULL | | -| Cop_proc_addr | varchar(64) | YES | | NULL | | -| Cop_wait_avg | double | YES | | NULL | | -| Cop_wait_p90 | double | YES | | NULL | | -| Cop_wait_max | double | YES | | NULL | | -| Cop_wait_addr | varchar(64) | YES | | NULL | | -| Mem_max | bigint | YES | | NULL | | -| Disk_max | bigint | YES | | NULL | | -| KV_total | double | YES | | NULL | | -| PD_total | double | YES | | NULL | | -| Backoff_total | double | YES | | NULL | | -| Unpacked_bytes_sent_tikv_total | bigint | YES | | NULL | | -| Unpacked_bytes_received_tikv_total | bigint | YES | | NULL | | -| Unpacked_bytes_sent_tikv_cross_zone | bigint | YES | | NULL | | -| Unpacked_bytes_received_tikv_cross_zone | bigint | YES | | NULL | | -| Unpacked_bytes_sent_tiflash_total | bigint | YES | | NULL | | -| Unpacked_bytes_received_tiflash_total | bigint | YES | | NULL | | -| Unpacked_bytes_sent_tiflash_cross_zone | bigint | YES | | NULL | | -| Unpacked_bytes_received_tiflash_cross_zone | bigint | YES | | NULL | | -| Write_sql_response_total | double | YES | | NULL | | -| Result_rows | bigint | YES | | NULL | | -| Warnings | longtext | YES | | NULL | | -| Backoff_Detail | varchar(4096) | YES | | NULL | | -| Prepared | tinyint(1) | YES | | NULL | | -| Succ | tinyint(1) | YES | | NULL | | -| IsExplicitTxn | tinyint(1) | YES | | NULL | | -| IsWriteCacheTable | tinyint(1) | YES | | NULL | | -| Plan_from_cache | tinyint(1) | YES | | NULL | | -| Plan_from_binding | tinyint(1) | YES | | NULL | | -| Has_more_results | tinyint(1) | YES | | NULL | | -| Resource_group | varchar(64) | YES | | NULL | | -| Request_unit_read | double | YES | | NULL | | -| Request_unit_write | double | YES | | NULL | | -| Time_queued_by_rc | double | YES | | NULL | | -| Tidb_cpu_time | double | YES | | NULL | | -| Tikv_cpu_time | double | YES | | NULL | | -| Plan | longtext | YES | | NULL | | -| Plan_digest | varchar(128) | YES | | NULL | | -| Binary_plan | longtext | YES | | NULL | | -| Prev_stmt | longtext | YES | | NULL | | -| Session_connect_attrs | json | YES | | NULL | | -| Query | longtext | YES | | NULL | | -+--------------------------------------------+-----------------+------+------+---------+-------+ -90 rows in set (0.00 sec) ->>>>>>> 69e69969b0 (docs: support logging session connect attrs to slow query log (#21468)) +82 rows in set (0.00 sec) ``` `Query` 列的语句长度上限由系统变量 [`tidb_stmt_summary_max_sql_length`](/system-variables.md#tidb_stmt_summary_max_sql_length-从-v40-版本开始引入) 控制。 @@ -303,7 +206,7 @@ DESC CLUSTER_SLOW_QUERY; | Session_connect_attrs | json | YES | | NULL | | | Query | longtext | YES | | NULL | | +-------------------------------+---------------------+------+------+---------+-------+ -82 rows in set (0.00 sec) +83 rows in set (0.00 sec) ``` 查询集群系统表时,TiDB 也会将相关计算下推给其他节点执行,而不是把所有节点的数据都取回来,可以查看执行计划,如下: From 35fa5474e66a6b1971699f7e3f282db52fde653d Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Mon, 20 Apr 2026 09:41:51 +0800 Subject: [PATCH 4/4] Apply suggestions from code review --- information-schema/information-schema-slow-query.md | 2 +- performance-schema/performance-schema-session-connect-attrs.md | 2 +- system-variable-reference.md | 2 +- system-variables.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/information-schema/information-schema-slow-query.md b/information-schema/information-schema-slow-query.md index f678d9ec7983..5078c3a019b4 100644 --- a/information-schema/information-schema-slow-query.md +++ b/information-schema/information-schema-slow-query.md @@ -106,7 +106,7 @@ DESC slow_query; `Query` 列的语句长度上限由系统变量 [`tidb_stmt_summary_max_sql_length`](/system-variables.md#tidb_stmt_summary_max_sql_length-从-v40-版本开始引入) 控制。 -`Session_connect_attrs` 列以 JSON 格式存储从慢日志解析出的会话连接属性。TiDB 通过 [`performance_schema_session_connect_attrs_size`](/system-variables.md#performance_schema_session_connect_attrs_size-从-v900-版本开始引入) 系统变量来控制写入此字段的最大负载大小。 +`Session_connect_attrs` 列以 JSON 格式存储从慢日志解析出的会话连接属性。TiDB 通过 [`performance_schema_session_connect_attrs_size`](/system-variables.md#performance_schema_session_connect_attrs_size-从-v857-版本开始引入) 系统变量来控制写入此字段的最大负载大小。 ## CLUSTER_SLOW_QUERY table diff --git a/performance-schema/performance-schema-session-connect-attrs.md b/performance-schema/performance-schema-session-connect-attrs.md index 68a914c6b70b..c40d6d0d4a4b 100644 --- a/performance-schema/performance-schema-session-connect-attrs.md +++ b/performance-schema/performance-schema-session-connect-attrs.md @@ -65,7 +65,7 @@ TABLE SESSION_CONNECT_ATTRS; ## 大小限制与截断 -TiDB 使用全局系统变量 [`performance_schema_session_connect_attrs_size`](/system-variables.md#performance_schema_session_connect_attrs_size-从-v900-版本开始引入) 来控制每个会话连接属性的最大总大小。 +TiDB 使用全局系统变量 [`performance_schema_session_connect_attrs_size`](/system-variables.md#performance_schema_session_connect_attrs_size-从-v857-版本开始引入) 来控制每个会话连接属性的最大总大小。 - 默认值:`4096` 字节 - 取值范围:`[-1, 65536]` diff --git a/system-variable-reference.md b/system-variable-reference.md index 76694ea91024..bee7c653c2d3 100644 --- a/system-variable-reference.md +++ b/system-variable-reference.md @@ -594,7 +594,7 @@ summary: 查看 TiDB 所有的系统变量,以及引用这些变量的文档 引用该变量的文档: - [`SESSION_CONNECT_ATTRS`](/performance-schema/performance-schema-session-connect-attrs.md) -- [System Variables](/system-variables.md#performance_schema_session_connect_attrs_size-从-v900-版本开始引入) +- [System Variables](/system-variables.md#performance_schema_session_connect_attrs_size-从-v857-版本开始引入) ### plugin_dir diff --git a/system-variables.md b/system-variables.md index 51b606773db1..04b304a45b24 100644 --- a/system-variables.md +++ b/system-variables.md @@ -731,7 +731,7 @@ mysql> SHOW GLOBAL VARIABLES LIKE 'max_prepared_stmt_count'; - 集群 Region 数量较多,PD leader 由于处理心跳和调度任务的开销大,导致 CPU 资源紧张。 - 集群中 TiDB 实例数量较多,Region 信息请求并发量较大,PD leader CPU 压力大。 -### `performance_schema_session_connect_attrs_size` 从 v9.0.0 版本开始引入 +### `performance_schema_session_connect_attrs_size` 从 v8.5.7 版本开始引入 - 作用域:GLOBAL - 是否持久化到集群:是