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正在等待磁盘 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此线程的唯一标识符。该值与性能模式
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 列上的唯一索引。
对于 tp_thread_state 表,不允许使用 TRUNCATE TABLE 语句。