MySQL 本身有一张表,在元数据字典库里,表名为innodb_metrics。这张表用来记录 InnoDB 表内部的计数器:目前 MySQL 8.0.31 最新版有314个计数器模块。 <mysql:8.0.31:information_schema>select count(*) as metrics_module_total from innodb_metrics;+------- 可以非常方便的编写SQL直接从表innodb_metrics 中查询出结果。 Show engine innodb status 结果相关计数器在表innodb_metrics里默认开启,也即字段status的值为enabled。 <mysql:8.0.31:information_schema>select count(*) from innodb_metrics where status='enabled';+--------
所以我们就必须要监控到底日志占用的情况,使用下面的方式监控 select count/1000000 from innodb_metrics where name like '%innodb_check select name,count from INNODB_METRICS where name in ('innodb_rwlock_s_spin_rounds','innodb_rwlock_x_spin_rounds 那怎么监控AHI 索引的使用情况 select * from INNODB_METRICS where name like 'adaptive_hash_searches'\G
上面的information_schema中的innodb_metrics 可以理解为对于MYSQL 数据库中的所有的信息的记录,举例我们对于dml 操作中的update 下面我们举一个例子 我们针对此时此刻的 上图中针对information_schema 中的innodb_metrics 中的update 的数据进行初始化,其中只对count_reset 进行更新,此后的UPDATE 操作就直接在这个 column
sampled_pages_read和sampled_pages_skip INNODB_METRICS计数器可用于监视InnoDB数据页的采样。 计算公式如下: sampling rate = sampled_page_read/(sampled_pages_read + sampled_pages_skipped) 通过以下方式确认INNODB_METRICS innodb_monitor_enable = 'sampled%'; Query OK, 0 rows affected (0.00 sec) mysql> SELECT NAME, COUNT FROM INNODB_METRICS
| | INNODB_FT_INDEX_CACHE | | INNODB_SYS_TABLESPACES | | INNODB_METRICS INNODB_LOCKS - 当前锁信息 INNODB_LOCK_WAITS - 锁等待关系 INNODB_BUFFER_POOL_STATS - 缓冲池统计 INNODB_BUFFER_PAGE - 缓冲池页面详情 INNODB_METRICS
MERGE_THRESHOLD 设置效果评估 innodb_metrics 表提供了两个计数器来跟踪页合并(Innodb_metrics 表非常有用,后期单独开篇详细来介绍。)
: Index_type: BTREE Comment: Index_comment: MERGE_THRESHOLD=20 3.2 页合并状态监控 页合并的统计情况,可以通过查询 INNODB_METRICS 有个不便的地方是,阈值 MERGE_THRESHOLD 无法全局设定(innodb_merge_threshold_set_all_debug参数只能用于debug版本,正常版本不可设置),而且通过 INNODB_METRICS
information_schema | INNODB_SYS_TABLESPACES | MEMORY | SYSTEM VIEW | | information_schema | INNODB_METRICS
指标变量和统计值 * 来自performance_schema内存监控中的当前分配的和总的历史分配内存统计值 * 来自系统当前时间(使用可读格式的unix时间戳) * PS:global_status表和innodb_metrics 开头的内存监控指标默认全部启用,无法关闭) * 对于当前系统时间:该列值总是显示为 'Yes' PS:关于metrics度量视图,其中涉及到一张information_schema下的innodb_metrics
| | INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_METRICS
通过INNODB_METRICS计数器可以监视数据页的采样情况,这需要提前开启计数器 root@employees 14:26: SELECT NAME, COUNT FROM INFORMATION_SCHEMA.INNODB_METRICS
里面缓冲的页数据 innodb_sys_datafiles :这张表就是记录的表的文件存储的位置和表空间的一个对应关系 innodb_temp_table_info :所有的innodb的所有用户使用到的信息 innodb_metrics
Shutting down plugin 'INNODB_FT_DEFAULT_STOPWORD' 2015-11-26 21:27:24 12493 [Note] Shutting down plugin 'INNODB_METRICS
select status, name, subsystem,count, max_count, min_count, avg_count, time_enabled, time_disabled from INNODB_METRICS select status, name, subsystem,count, max_count, min_count, avg_count, time_enabled, time_disabled from INNODB_METRICS
UNCOMPRESS_TOTAL:每个buffer pool instance中解压缩的总页数 UNCOMPRESS_CURRENT:每个buffer pool instance中当前解压缩的页数 | INNODB_METRICS 引擎临时表,查询该表的用户需要有process权限 下面是该表中存储的信息内容 admin@localhost : information_schema 06:48:59> select * from INNODB_METRICS
INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_METRICS
|| INNODB_FT_INDEX_TABLE || INNODB_INDEXES || INNODB_METRICS
返回空集 innodb_ft_index_cache 返回空集 innodb_ft_index_table 返回空集 innodb_locks 返回空集 innodb_lock_waits 返回空集 innodb_metrics
information_schema | INNODB_INDEXES | SYSTEM VIEW | NULL | | information_schema | INNODB_METRICS
INNODB_METRICS提供计数器用于监视代码级事务调度事件。有关使用INNODB_METRICS计数器的信息 。 lock_rec_release_attempts 尝试释放记录锁定的次数。