24.33.1 INFORMATION_SCHEMA TP_THREAD_GROUP_STATEtable

TP_THREAD_GROUP_STATEtable 在线程池中每个线程组都有一行。每行提供有关组当前状态的信息。

TP_THREAD_GROUP_STATEtable 具有以下列:

  • TP_GROUP_ID

线程组 ID。这是 table 中的唯一键。

  • CONSUMER THREADS

使用者线程数。如果活动线程陷入停滞或阻塞状态,则最多有一个线程准备开始执行。

  • RESERVE_THREADS

保留状态下的线程数。这意味着只有在需要唤醒新线程并且没有使用者线程时,它们才会启动。当线程组创建的线程数超过正常操作所需的线程数时,大多数线程将在此处结束。通常,线程组在短时间内需要其他线程,然后在一段时间内不再需要它们。在这种情况下,它们将进入保留状态并保留直到再次需要。它们占用一些额外的内存资源,但不占用额外的计算资源。

  • CONNECT_THREAD_COUNT

正在处理或正在 await 处理连接初始化和身份验证的线程数。每个线程组最多可以有四个连接线程。这些线程在闲置一段时间后到期。

该列是在 MySQL 5.7.18 中添加的。

  • CONNECTION_COUNT

使用此线程组的连接数。

  • QUEUED_QUERIES

高优先级队列中 await 的语句数。

  • QUEUED_TRANSACTIONS

低优先级队列中 await 的语句数。这些是尚未开始的事务的初始语句,因此它们也 table 示排队的事务。

  • 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

最旧的排队语句 await 执行的毫秒数。

  • MAX_THREAD_IDS_IN_GROUP

组中线程的最大线程 ID。从TP_THREAD_STATEtable 中选择时,该线程与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;