tp_thread_group_stats 表按线程组报告统计信息。每个组对应一行。
tp_thread_group_stats 表包含以下列
TP_GROUP_ID线程组 ID。这是表中的唯一键。
CONNECTIONS_STARTED已启动的连接数。
CONNECTIONS_CLOSED已关闭的连接数。
QUERIES_EXECUTED已执行的语句数。当语句开始执行时,此数字会递增,而不是在语句完成时递增。
QUERIES_QUEUED已接收并排队等待执行的语句数。这并不包括线程组能够立即开始执行而无需排队的语句,这可能会在第 7.6.3.3 节,“线程池操作”中描述的条件下发生。
THREADS_STARTED已启动的线程数。
PRIO_KICKUPS根据
thread_pool_prio_kickup_timer系统变量的值,从低优先级队列移至高优先级队列的语句数。如果此数字快速增加,请考虑增加该变量的值。快速增加的计数器意味着优先级系统无法阻止事务过早开始。对于InnoDB,这很可能意味着由于太多并发事务导致性能下降。STALLED_QUERIES_EXECUTED由于执行时间超过
thread_pool_stall_limit系统变量的值而被定义为已停滞的语句数。BECOME_CONSUMER_THREAD线程被分配消费者线程角色的次数。
BECOME_RESERVE_THREAD线程被分配预留线程角色的次数。
BECOME_WAITING_THREAD线程被分配等待线程角色的次数。当语句排队时,这经常发生,即使在正常操作中也是如此,因此在高负载系统中,如果语句排队,则此值的快速增加是正常的。
WAKE_THREAD_STALL_CHECKER停滞检查线程决定唤醒或创建线程以可能处理某些语句或处理等待线程角色的次数。
SLEEP_WAITSTHD_WAIT_SLEEP等待次数。这些等待发生在线程进入睡眠状态时(例如,通过调用SLEEP()函数)。DISK_IO_WAITSTHD_WAIT_DISKIO等待次数。这些等待发生在线程执行磁盘 I/O 且可能不会命中文件系统缓存时。这种等待发生在缓冲池将数据读写到磁盘时,而不是在对文件的正常读写操作中。ROW_LOCK_WAITSTHD_WAIT_ROW_LOCK等待次数,等待另一个事务释放行锁。GLOBAL_LOCK_WAITSTHD_WAIT_GLOBAL_LOCK等待次数,等待释放全局锁。META_DATA_LOCK_WAITSTHD_WAIT_META_DATA_LOCK等待次数,等待释放元数据锁。TABLE_LOCK_WAITSTHD_WAIT_TABLE_LOCK等待次数,等待解锁语句需要访问的表。USER_LOCK_WAITSTHD_WAIT_USER_LOCK等待次数,等待用户线程构建的特殊锁。BINLOG_WAITSTHD_WAIT_BINLOG_WAITS等待次数,等待二进制日志变为可用。GROUP_COMMIT_WAITSTHD_WAIT_GROUP_COMMIT等待次数。这些等待发生在组提交必须等待其他方完成其事务部分时。FSYNC_WAITS对于文件同步操作,
THD_WAIT_SYNC等待次数。
tp_thread_group_stats 表有以下索引
在 (
TP_GROUP_ID) 上的唯一索引
TRUNCATE TABLE 不允许用于 tp_thread_group_stats 表。