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
表执行。