tp_thread_group_state
表对线程池中的每个线程组都有一行。每行提供有关组的当前状态的信息。
tp_thread_group_state
表包含以下列:
TP_GROUP_ID
线程组 ID。这是表中的唯一键。
CONSUMER THREADS
消费者线程数。如果活动线程停滞或阻塞,则最多有一个线程准备开始执行。
RESERVE_THREADS
处于保留状态的线程数。这意味着在需要唤醒新线程且没有消费者线程之前,它们不会启动。这是当线程组创建的线程数量超过正常操作所需的数量时,大多数线程最终所在的位置。通常,线程组在短时间内需要额外的线程,然后在一段时间内不再需要它们。在这种情况下,它们进入保留状态,并在需要时再次保留。它们会占用一些额外的内存资源,但不会占用额外的计算资源。
CONNECT_THREAD_COUNT
正在处理或等待处理连接初始化和身份验证的线程数。每个线程组最多可以有四个连接线程;这些线程在一段时间不活动后过期。
CONNECTION_COUNT
使用此线程组的连接数。
QUEUED_QUERIES
在高优先级队列中等待的语句数。
QUEUED_TRANSACTIONS
在低优先级队列中等待的语句数。这些是尚未启动的事务的初始语句,因此它们也表示排队的 事务。
STALL_LIMIT
线程组的
thread_pool_stall_limit
系统变量的值。所有线程组的值都相同。PRIO_KICKUP_TIMER
线程组的
thread_pool_prio_kickup_timer
系统变量的值。所有线程组的值都相同。ALGORITHM
线程组的
thread_pool_algorithm
系统变量的值。所有线程组的值都相同。THREAD_COUNT
在线程池中作为此线程组的一部分启动的线程数。
ACTIVE_THREAD_COUNT
在执行语句时处于活动状态的线程数。
STALLED_THREAD_COUNT
线程组中停滞语句的数量。停滞的语句可能正在执行,但从线程池的角度来看,它已停滞不前。长时间运行的语句很快就会落入此类别。
WAITING_THREAD_NUMBER
如果有线程正在处理线程组中语句的轮询,则指定此线程组中的线程号。此线程可能正在执行语句。
OLDEST_QUEUED
最旧的排队语句等待执行的时间(以毫秒为单位)。
MAX_THREAD_IDS_IN_GROUP
组中线程的最大线程 ID。这与从
tp_thread_state
表中选择线程时的MAX(TP_THREAD_NUMBER)
相同。也就是说,这两个查询是等效的:SELECT TP_GROUP_ID, MAX_THREAD_IDS_IN_GROUP FROM tp_thread_group_state; SELECT TP_GROUP_ID, MAX(TP_THREAD_NUMBER) FROM tp_thread_state GROUP BY TP_GROUP_ID;
EFFECTIVE_MAX_TRANSACTIONS_LIMIT
该组的有效
max_transactions_limit_per_tg
值。NUM_QUERY_THREADS
组中工作线程的数量。
TIME_OF_LAST_THREAD_CREATION
上次创建线程的时间点。
NUM_CONNECT_HANDLER_THREAD_IN_SLEEP
非活动连接处理程序线程的数量。
THREADS_BOUND_TO_TRANSACTION
活动事务中的线程数,该数字必须小于
thread_pool_max_transactions_limit
;仅当thread_pool_max_transactions_limit
不为0
时才会设置此值。QUERY_THREADS_COUNT
与 num_query_threads 相同,但用于不同的目的?
TIME_OF_EARLIEST_CON_EXPIRE
一个时间戳,显示连接预计过期的最早时间点。
tp_thread_group_state
表有一个索引;这是 TP_GROUP_ID
列上的唯一索引。
不允许对 tp_thread_group_state
表执行 TRUNCATE TABLE
操作。