MySQL 8.0 参考手册  / 第 26 章 INFORMATION_SCHEMA 表  / 26.5 INFORMATION_SCHEMA线程池表  /  21.6.2 INFORMATION_SCHEMA TP_THREAD_GROUP_STATE 表

21.6.2 INFORMATION_SCHEMA TP_THREAD_GROUP_STATE 表

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

TP_THREAD_GROUP_STATE表有以下列:

  • TP_GROUP_ID

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

  • CONSUMER THREADS

    消费者线程的数量。如果活动线程停止或阻塞,则最多有一个线程准备好开始执行。

  • RESERVE_THREADS

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

  • CONNECT_THREAD_COUNT

    正在处理或等待处理连接初始化和身份验证的线程数。每个线程组最多可以有四个连接线程;这些线程在一段时间不活动后过期。

    该列是在 MySQL 5.6.36 中添加的。

  • 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。这与从表中MAX(TP_THREAD_NUMBER) 选择的线程 相同。TP_THREAD_STATE也就是说,这两个查询是等价的:

    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;