该 tp_thread_state 表每行对应一个由线程池创建的线程来处理连接。
该 tp_thread_state 表具有以下列:
-
TP_GROUP_ID线程组 ID。
-
TP_THREAD_NUMBER线程组内的线程 ID。
TP_GROUP_ID和TP_THREAD_NUMBER共同提供了表中的唯一键。 -
PROCESS_COUNT当前执行语句的 10ms 间隔。0 表示没有语句执行,1 表示在第一个 10ms 内,以此类推。
-
WAIT_TYPE线程的等待类型。
NULL表示线程未阻塞。否则,线程被thd_wait_begin()阻塞,值指定等待类型。列的xxx_WAITtp_thread_group_stats表累积每种等待类型的计数。该
WAIT_TYPE值是一个字符串,描述等待类型,如下表所示。表 29.4 tp_thread_state 表 WAIT_TYPE 值
Wait Type Meaning THD_WAIT_SLEEP等待睡眠 THD_WAIT_DISKIO等待磁盘 IO THD_WAIT_ROW_LOCK等待行锁 THD_WAIT_GLOBAL_LOCK等待全局锁 THD_WAIT_META_DATA_LOCK等待元数据锁 THD_WAIT_TABLE_LOCK等待表锁 THD_WAIT_USER_LOCK等待用户锁 THD_WAIT_BINLOG等待二进制日志 THD_WAIT_GROUP_COMMIT等待组提交 THD_WAIT_SYNC等待 fsync -
TP_THREAD_TYPE线程类型。该列的值是
CONNECTION_HANDLER_WORKER_THREAD、LISTENER_WORKER_THREAD、QUERY_WORKER_THREAD或TIMER_WORKER_THREAD之一。 -
THREAD_ID该线程的唯一标识符。该值与 Performance Schema
threads表的THREAD_ID列相同。 -
TIME_OF_ATTACH:该线程附加的时间戳,如果附加到连接;否则为
NULL。 -
MARKED_STALLED:如果该线程被STALL检查器线程标记为阻塞,则为
True。 -
STATE:可能的值取决于线程类型,如
TP_THREAD_TYPE列所示:-
对于工作线程 (
QUERY_WORKER_THREAD),该值是Managing、Polling、Processing Direct、Processing Queued、Sleeping Consumer或Sleeping Reserve之一。 -
对于连接处理线程 (
CONNECTION_HANDLER_WORKER_THREAD),该值是CH Processing、CH Sleeping Timed或CH Sleeping Indefinite之一。 -
对于STALL检查器线程 (
TIMER_WORKER_THREAD),该值是SC Checking、SC Sleeping Short或SC Sleeping Long之一。
-
-
EVENT_COUNT:该线程处理的事件累积数。
-
ACCUMULATED_EVENT_TIME:处理事件的墙钟时间。
-
EXEC_COUNT:服务器执行的查询(语句)累积数量。
-
ACCUMULATED_EXEC_TIME:服务器处理查询所花费的墙上时钟时间。
在 MySQL 8.3 中添加了 TIME_OF_ATTACH、MARKED_STALLED、STATE、EVENT_COUNT、ACCUMULATED_EVENT_TIME、EXEC_COUNT 和 ACCUMULATED_EXEC_TIME 列。
表 tp_thread_state 有一个索引;这是 TP_GROUP_ID 和 TP_THREAD_NUMBER 列上的唯一索引。
TRUNCATE TABLE 不允许用于 tp_thread_state 表。