tp_thread_state 表对于线程池创建的每个处理连接的线程都有一行。
tp_thread_state 表包含以下列
TP_GROUP_ID线程组 ID。
TP_THREAD_NUMBER线程在其线程组中的 ID。
TP_GROUP_ID和TP_THREAD_NUMBER共同构成表中的唯一键。PROCESS_COUNT当前正在执行使用此线程的语句的 10 毫秒间隔。 0 表示没有语句正在执行,1 表示在第一个 10 毫秒内,依此类推。
WAIT_TYPE线程的等待类型。
NULL表示线程未阻塞。否则,线程被thd_wait_begin()的调用阻塞,并且该值指定等待类型。tp_thread_group_stats表的列累加每个等待类型的计数。xxx_WAITWAIT_TYPE值是一个字符串,描述等待类型,如下表所示。表 29.4 tp_thread_state 表 WAIT_TYPE 值
等待类型 含义 THD_WAIT_SLEEP等待睡眠 THD_WAIT_DISKIO等待磁盘 I/O 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:如果此线程被停滞检查线程标记为已停滞,则为
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之一。对于停滞检查线程 (
TIMER_WORKER_THREAD),这将是SC Checking、SC Sleeping Short或SC Sleeping Long之一。
EVENT_COUNT:此线程处理的事件的累计数量。
ACCUMULATED_EVENT_TIME:处理事件所花费的挂钟时间。
EXEC_COUNT:传递到服务器以执行的查询(语句)的累计数量。
ACCUMULATED_EXEC_TIME:服务器处理查询所花费的挂钟时间。
tp_thread_state 表有一个索引;这是 TP_GROUP_ID 和 TP_THREAD_NUMBER 列的唯一索引。
TRUNCATE TABLE 不允许用于 tp_thread_state 表。