-
Notifications
You must be signed in to change notification settings - Fork 111
INNODB_METRICS
xiaoboluo768 edited this page Jun 7, 2020
·
2 revisions
- 该表提供查询InnoDB更为详细细致的性能信息,是对InnoDB的PERFORMANCE_SCHEMA的补充。通过对该表的查询,可用于检查innodb的整体健康状况。也可用于诊断性能瓶颈、资源短缺和应用程序的问题等。
- 该表中的每一行记录代表innodb源代码中的一个instruments点,对应源代码中的一个计数器。每个计数器都可以单独启动、停止和重置值。也可以使用通用模块名称为一组计数器执行起停与重置值操作(同属于一个模块下的一组instrument,使用模块名称即可快速起停、重置一组instruments)
- 默认情况下,只开启了极少数的计数器。 如果要启动、停止和重置计数器,可以使用计数器的名称、或者模块的名称、或者通配符匹配名称来设置innodb_monitor_enable、innodb_monitor_disable、innodb_monitor_reset、innodb_monitor_reset_all系统变量来起停、重置计数器。如果设置这4个变量来操作这些计数器,详见链接:https://dev.mysql.com/doc/refman/5.7/en/innodb-information-schema-metrics-table.html
- 该表为memory引擎临时表,查询该表的用户需要有process权限
- 表定义语句
CREATE TEMPORARY TABLE `INNODB_METRICS` (
`NAME` varchar(193) NOT NULL DEFAULT '',
`SUBSYSTEM` varchar(193) NOT NULL DEFAULT '',
`COUNT` bigint(21) NOT NULL DEFAULT '0',
`MAX_COUNT` bigint(21) DEFAULT NULL,
`MIN_COUNT` bigint(21) DEFAULT NULL,
`AVG_COUNT` double DEFAULT NULL,
`COUNT_RESET` bigint(21) NOT NULL DEFAULT '0',
`MAX_COUNT_RESET` bigint(21) DEFAULT NULL,
`MIN_COUNT_RESET` bigint(21) DEFAULT NULL,
`AVG_COUNT_RESET` double DEFAULT NULL,
`TIME_ENABLED` datetime DEFAULT NULL,
`TIME_DISABLED` datetime DEFAULT NULL,
`TIME_ELAPSED` bigint(21) DEFAULT NULL,
`TIME_RESET` datetime DEFAULT NULL,
`STATUS` varchar(193) NOT NULL DEFAULT '',
`TYPE` varchar(193) NOT NULL DEFAULT '',
`COMMENT` varchar(193) NOT NULL DEFAULT ''
) ENGINE=MEMORY DEFAULT CHARSET=utf8
- 表字段含义
- NAME:计数器的唯一名称
- SUBSYSTEM:计数器对应的模块名称,使用SET GLOBAL语法+innodb_monitor_enable、innodb_monitor_disable、innodb_monitor_reset、innodb_monitor_reset_all几个系统变量与一起使用来起停、重置计数器时,需要在模块名前面加“module ”字样,例如:子系统为dml,则开启该模块下的所有计数器的SQL语句为 SET GLOBAL innodb_monitor_enable = module_dml;
- COUNT:自计数器启用后的统计值
- MAX_COUNT:自计数器启用以来的最大统计值
- MIN_COUNT:自计数器启用后的最小统计值
- AVG_COUNT:自计数器启用以来的平均统计值
- COUNT_RESET:自上次重置计数器值以来的计数器值
- MAX_COUNT_RESET:自上次重置计数器以来的最大计数器值
- MIN_COUNT_RESET:自上次重置计数器以来的最小计数器值
- AVG_COUNT_RESET:自上次重置计数器以来的平均计数器值
- TIME_ENABLED:最近一次启动计数器的时间
- TIME_DISABLED:最近一次关闭计数器的时间
- TIME_ELAPSED:自计数器启动以来的经过时间,以秒为单位
- TIME_RESET:最近一次重置计数器的时间
- STATUS:计数器的当前状态,有效值为:enabled和disabled
- TYPE:计数器是累计值类型,还是测量某个资源的当前值类型
- COMMENT:计数器注释
- 表记录内容示例
admin@localhost : information_schema 06:48:59> select * from INNODB_METRICS where COUNT_RESET > 0 limit 1\G;
*************************** 1. row ***************************
NAME: lock_timeouts
SUBSYSTEM: lock
COUNT: 2
MAX_COUNT: 2
MIN_COUNT: NULL
AVG_COUNT: 0.00005471806516921562
COUNT_RESET: 2
MAX_COUNT_RESET: 2
MIN_COUNT_RESET: NULL
AVG_COUNT_RESET: NULL
TIME_ENABLED: 2017-09-25 08:40:07
TIME_DISABLED: NULL
TIME_ELAPSED: 36551
TIME_RESET: NULL
STATUS: enabled
TYPE: counter
COMMENT: Number of lock timeouts
1 row in set (0.00 sec)
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!