29.12.16.4 tp_thread_state 表
The tp_thread_state 表中,每个线程池创建的线程都有一行记录。
The 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()的调用中,并且该值指定了等待的类型。tp_thread_group_stats表的列累积每种等待类型的计数。xxx_WAITWAIT_TYPE 值是一个字符串,描述等待的类型,如下表所示。
Table 29.4 tp_thread_state Table WAIT_TYPE Values
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等待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:如果该线程被STALL检查线程标记为已标记,则为
True。 -
STATE:状态取决于线程类型,见
TP_THREAD_TYPE列:-
对于worker线程(
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:处理事件的wall clock时间。
-
EXEC_COUNT:累积的查询(语句)数量,传递给服务器执行。
-
ACCUMULATED_EXEC_TIME:服务器处理查询的wall clock时间。
表tp_thread_state有一个索引,这是一个唯一索引,基于TP_GROUP_ID和TP_THREAD_NUMBER列。
TRUNCATE TABLE不允许对tp_thread_state表执行。