该 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
列上的唯一索引。
TRUNCATE TABLE
不允许用于 tp_thread_group_state
表。