此处描述的性能模式表从 MySQL 8.0.14 开始可用。MySQL 8.0.14之前,改用对应的INFORMATION_SCHEMA
表;参见
第 26.5.3 节,“INFORMATION_SCHEMA TP_THREAD_GROUP_STATS 表”。
该tp_thread_group_stats
表报告每个线程组的统计信息。每组一行。
该tp_thread_group_stats
表有以下列:
TP_GROUP_ID
线程组 ID。这是表中的唯一键。
CONNECTIONS_STARTED
启动的连接数。
CONNECTIONS_CLOSED
关闭的连接数。
QUERIES_EXECUTED
执行的语句数。这个数字在语句开始执行时递增,而不是在它结束时递增。
QUERIES_QUEUED
接收到的排队等待执行的语句数。这不计算线程组无需排队即可立即开始执行的语句,这可能会在第 5.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_WAITS
THD_WAIT_SLEEP
等待 的次数。这些发生在线程进入休眠状态时(例如,通过调用SLEEP()
函数)。DISK_IO_WAITS
THD_WAIT_DISKIO
等待 的次数。这些发生在线程执行可能不会命中文件系统缓存的磁盘 I/O 时。这种等待发生在缓冲池读写数据到磁盘时,而不是正常读写文件时。ROW_LOCK_WAITS
THD_WAIT_ROW_LOCK
等待另一个事务释放行锁的 次数。GLOBAL_LOCK_WAITS
THD_WAIT_GLOBAL_LOCK
等待释放全局锁 的次数。META_DATA_LOCK_WAITS
THD_WAIT_META_DATA_LOCK
等待释放元数据锁 的次数。TABLE_LOCK_WAITS
THD_WAIT_TABLE_LOCK
等待解锁语句需要访问的表 的次数。USER_LOCK_WAITS
THD_WAIT_USER_LOCK
等待用户线程构造的特殊锁 的次数。BINLOG_WAITS
THD_WAIT_BINLOG_WAITS
等待二进制日志变为空闲 的次数。GROUP_COMMIT_WAITS
THD_WAIT_GROUP_COMMIT
等待 的次数。当组提交必须等待其他方完成他们的事务部分时,就会发生这些情况。FSYNC_WAITS
THD_WAIT_SYNC
等待文件同步操作 的次数。
该tp_thread_group_stats
表具有以下索引:
TP_GROUP_ID
( ) 上的唯一索引