14.15.6 InnoDB INFORMATION_SCHEMA Metrics Table
The INNODB_METRICS
table, introduced in MySQL 5.6.2, consolidates all InnoDB
performance and resource-related counters into a single INFORMATION_SCHEMA
table. >>>>自 Mysql 5.6.2 引入了 innodb_metrics 表,将所有InnoDB性能和资源相关的计数器合并到 information_schema 下的一个表中(innodb_metrics)。
The columns of the INNODB_METRICS
table are shown in the following example. For a description of each column, see Section 24.31.15, “The INFORMATION_SCHEMA INNODB_METRICS Table”. >>>>下面的例子展示了 innodb_metrics 都有哪些列,关于这些列的具体含义请参考 官方文档中的 Section 24.31.15 部分。
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts" \G
*************************** 1. row ***************************
NAME: dml_inserts
SUBSYSTEM: dml
COUNT: 46273
MAX_COUNT: 46273
MIN_COUNT: NULL
AVG_COUNT: 492.2659574468085
COUNT_RESET: 46273
MAX_COUNT_RESET: 46273
MIN_COUNT_RESET: NULL
AVG_COUNT_RESET: NULL
TIME_ENABLED: 2014-11-28 16:07:53
TIME_DISABLED: NULL
TIME_ELAPSED: 94
TIME_RESET: NULL
STATUS: enabled
TYPE: status_counter
COMMENT: Number of rows inserted
Enabling, Disabling, and Resetting Counters >>>>如何启用,禁用,重置这些计数器
You can enable, disable, and reset counters using the following configuration options: >>>>你可以通过如下方法启用,禁用,重置计数器
-
innodb_monitor_enable
: Enables one or more counters. >>>>通过 innodb_monitor_enable 参数启用一个或多个计数器SET GLOBAL innodb_monitor_enable = [counter-name|module_name|pattern|all];
-
innodb_monitor_disable
: Disables one or more counters. >>>>通过 innodb_monitor_disable 参数启用一个或多个计数器SET GLOBAL innodb_monitor_disable = [counter-name|module_name|pattern|all];
-
innodb_monitor_reset
: Resets the count value for one or more counters to zero. >>>>通过 innodb_monitor_reset 参数重置一个或多个计数器的%_RESET值SET GLOBAL innodb_monitor_reset = [counter-name|module_name|pattern|all];
-
innodb_monitor_reset_all
: Resets all values for one or more counters. A counter must be disabled before usinginnodb_monitor_reset_all
. >>>>通过 innodb_monitor_reset_all 参数重置一个或多个计数器的所有值(该计数器在innodb_metrics表中所有值都被重置)。在使用 innodb_monitor_reset_all 来重置某个计数器前,必须先 disable 该计数器SET GLOBAL innodb_monitor_reset_all = [counter-name|module_name|pattern|all];
You can also enable counters and counter modules at startup using the MySQL server configuration file. For example, to enable the log
module, metadata_table_handles_opened
and metadata_table_handles_closed
counters, enter the following line in the [mysqld]
section of your my.cnf
configuration file. >>>>你也可以通过在 my.cnf 文件中指定相关参数,在实例启动时启用相关计数器。例如你可以通过在my.cnf文件 [mysqld] 下指定如下内容,启动module_recovery,metadata_table_handles_opened,metadata_table_handles_closed等计数器
[mysqld]
innodb_monitor_enable = module_recovery,metadata_table_handles_opened,metadata_table_handles_closed
When enabling multiple counters or modules in your configuration file, you must specify the innodb_monitor_enable
configuration option followed by counter and module names separated by a comma, as shown in the example above. Only the innodb_monitor_enable
option can be used in your configuration file. The disable and reset configuration options are only supported on the command line. >>>>通过配置文件在实例启动时,你必须在配置文件中指定 innodb_monitor_enable 选项,如果该选项后跟多个值,用逗号进行分割。我们无法在配置文件中实现禁用或者重置计数器的操作,这些操作只能在命令行中进行。
Because each counter imposes some degree of runtime overhead on the server, typically you enable more counters on test and development servers during experimentation and benchmarking, and only enable counters on production servers to diagnose known issues or monitor aspects that are likely to be bottlenecks for a particular server and workload. >>>>因为启用计数器会对性能有一定影响,所以通常是在开发及测试环境开启很多的计数器,在生产环境中只是在需要诊断问题,或者系统瓶颈时才开启
Counters
The counters represented in the INNODB_METRICS
table are subject to change, so for the most up-to-date list, query a running MySQL server. >>>>innodb 计数器的数量一直在变化,当前数据库版本有多少计数器,你可以查询 innodb_metrics来获得(select count(1) from innodb_metrics;)
Counters that are enabled by default correspond to those used by SHOW ENGINE INNODB STATUS
. Counters used by SHOW ENGINE INNODB STATUS
are always “on” at a system level but you can disable these counters for the INNODB_METRICS
table, as required. Also, counter status is not persistent. Unless specified otherwise, counters revert to their default enabled or disabled status when the server is restarted. >>>>innodb 默认启用的计数器对应于显示INNODB引擎状态(show engine innodb status\G;)所使用的计数器。用于显示 show engine innodb status\G;信息的计数器,都是默认打开的。当然如果你需要的话,你也可以关闭这些计数器。另外,计数器状态信息不是持久的。除非另有指定,否则当数据库实例重启后,计数器将恢复到默认启用或禁用状态。
If you run programs that would be affected by additions or changes to the INNODB_METRICS
table, it is recommended that you review releases notes and query the INNODB_METRICS
table for the new release prior to upgrading. >>>>如果你的程序会收到 innodb_metrics 的影响,那么你在升级前需要仔细查看 releases notes 并且查询新版本的 innodb_metrics
mysql> SELECT name, subsystem, status FROM INFORMATION_SCHEMA.INNODB_METRICS ORDER BY NAME;
+------------------------------------------+---------------------+----------+
| name | subsystem | status |
+------------------------------------------+---------------------+----------+
| adaptive_hash_pages_added | adaptive_hash_index | disabled |
| adaptive_hash_pages_removed | adaptive_hash_index | disabled |
| adaptive_hash_rows_added | adaptive_hash_index | disabled |
| adaptive_hash_rows_deleted_no_hash_entry | adaptive_hash_index | disabled |
| adaptive_hash_rows_removed | adaptive_hash_index | disabled |
| adaptive_hash_rows_updated | adaptive_hash_index | disabled |
| adaptive_hash_searches | adaptive_hash_index | enabled |
| adaptive_hash_searches_btree | adaptive_hash_index | enabled |
| buffer_data_reads | buffer | enabled |
| buffer_data_written | buffer | enabled |
| buffer_flush_adaptive | buffer | disabled |
| buffer_flush_adaptive_avg_pass | buffer | disabled |
| buffer_flush_adaptive_avg_time_est | buffer | disabled |
| buffer_flush_adaptive_avg_time_slot | buffer | disabled |
| buffer_flush_adaptive_avg_time_thread | buffer | disabled |
| buffer_flush_adaptive_pages | buffer | disabled |
| buffer_flush_adaptive_total_pages | buffer | disabled |
| buffer_flush_avg_page_rate | buffer | disabled |
| buffer_flush_avg_pass | buffer | disabled |
| buffer_flush_avg_time | buffer | disabled |
| buffer_flush_background | buffer | disabled |
| buffer_flush_background_pages | buffer | disabled |
| buffer_flush_background_total_pages | buffer | disabled |
| buffer_flush_batches | buffer | disabled |
| buffer_flush_batch_num_scan | buffer | disabled |
| buffer_flush_batch_pages | buffer | disabled |
| buffer_flush_batch_scanned | buffer | disabled |
| buffer_flush_batch_scanned_per_call | buffer | disabled |
| buffer_flush_batch_total_pages | buffer | disabled |
| buffer_flush_lsn_avg_rate | buffer | disabled |
| buffer_flush_neighbor | buffer | disabled |
| buffer_flush_neighbor_pages | buffer | disabled |
| buffer_flush_neighbor_total_pages | buffer | disabled |
| buffer_flush_n_to_flush_by_age | buffer | disabled |
| buffer_flush_n_to_flush_requested | buffer | disabled |
| buffer_flush_pct_for_dirty | buffer | disabled |
| buffer_flush_pct_for_lsn | buffer | disabled |
| buffer_flush_sync | buffer | disabled |
| buffer_flush_sync_pages | buffer | disabled |
| buffer_flush_sync_total_pages | buffer | disabled |
| buffer_flush_sync_waits | buffer | disabled |
| buffer_LRU_batches_evict | buffer | disabled |
| buffer_LRU_batches_flush | buffer | disabled |
| buffer_LRU_batch_evict_pages | buffer | disabled |
| buffer_LRU_batch_evict_total_pages | buffer | disabled |
| buffer_LRU_batch_flush_avg_pass | buffer | disabled |
| buffer_LRU_batch_flush_avg_time_est | buffer | disabled |
| buffer_LRU_batch_flush_avg_time_slot | buffer | disabled |
| buffer_LRU_batch_flush_avg_time_thread | buffer | disabled |
| buffer_LRU_batch_flush_pages | buffer | disabled |
| buffer_LRU_batch_flush_total_pages | buffer | disabled |
| buffer_LRU_batch_num_scan | buffer | disabled |
| buffer_LRU_batch_scanned | buffer | disabled |
| buffer_LRU_batch_scanned_per_call | buffer | disabled |
| buffer_LRU_get_free_loops | buffer | disabled |
| buffer_LRU_get_free_search | Buffer | disabled |
| buffer_LRU_get_free_waits | buffer | disabled |
| buffer_LRU_search_num_scan | buffer | disabled |
| buffer_LRU_search_scanned | buffer | disabled |
| buffer_LRU_search_scanned_per_call | buffer | disabled |
| buffer_LRU_single_flush_failure_count | Buffer | disabled |
| buffer_LRU_single_flush_num_scan | buffer | disabled |
| buffer_LRU_single_flush_scanned | buffer | disabled |
| buffer_LRU_single_flush_scanned_per_call | buffer | disabled |
| buffer_LRU_unzip_search_num_scan | buffer | disabled |
| buffer_LRU_unzip_search_scanned | buffer | disabled |
| buffer_LRU_unzip_search_scanned_per_call | buffer | disabled |
| buffer_pages_created | buffer | enabled |
| buffer_pages_read | buffer | enabled |
| buffer_pages_written | buffer | enabled |
| buffer_page_read_blob | buffer_page_io | disabled |
| buffer_page_read_fsp_hdr | buffer_page_io | disabled |
| buffer_page_read_ibuf_bitmap | buffer_page_io | disabled |
| buffer_page_read_ibuf_free_list | buffer_page_io | disabled |
| buffer_page_read_index_ibuf_leaf | buffer_page_io | disabled |
| buffer_page_read_index_ibuf_non_leaf | buffer_page_io | disabled |
| buffer_page_read_index_inode | buffer_page_io | disabled |
| buffer_page_read_index_leaf | buffer_page_io | disabled |
| buffer_page_read_index_non_leaf | buffer_page_io | disabled |
| buffer_page_read_other | buffer_page_io | disabled |
| buffer_page_read_system_page | buffer_page_io | disabled |
| buffer_page_read_trx_system | buffer_page_io | disabled |
| buffer_page_read_undo_log | buffer_page_io | disabled |
| buffer_page_read_xdes | buffer_page_io | disabled |
| buffer_page_read_zblob | buffer_page_io | disabled |
| buffer_page_read_zblob2 | buffer_page_io | disabled |
| buffer_page_written_blob | buffer_page_io | disabled |
| buffer_page_written_fsp_hdr | buffer_page_io | disabled |
| buffer_page_written_ibuf_bitmap | buffer_page_io | disabled |
| buffer_page_written_ibuf_free_list | buffer_page_io | disabled |
| buffer_page_written_index_ibuf_leaf | buffer_page_io | disabled |
| buffer_page_written_index_ibuf_non_leaf | buffer_page_io | disabled |
| buffer_page_written_index_inode | buffer_page_io | disabled |
| buffer_page_written_index_leaf | buffer_page_io | disabled |
| buffer_page_written_index_non_leaf | buffer_page_io | disabled |
| buffer_page_written_other | buffer_page_io | disabled |
| buffer_page_written_system_page | buffer_page_io | disabled |
| buffer_page_written_trx_system | buffer_page_io | disabled |
| buffer_page_written_undo_log | buffer_page_io | disabled |
| buffer_page_written_xdes | buffer_page_io | disabled |
| buffer_page_written_zblob | buffer_page_io | disabled |
| buffer_page_written_zblob2 | buffer_page_io | disabled |
| buffer_pool_bytes_data | buffer | enabled |
| buffer_pool_bytes_dirty | buffer | enabled |
| buffer_pool_pages_data | buffer | enabled |
| buffer_pool_pages_dirty | buffer | enabled |
| buffer_pool_pages_free | buffer | enabled |
| buffer_pool_pages_misc | buffer | enabled |
| buffer_pool_pages_total | buffer | enabled |
| buffer_pool_reads | buffer | enabled |
| buffer_pool_read_ahead | buffer | enabled |
| buffer_pool_read_ahead_evicted | buffer | enabled |
| buffer_pool_read_requests | buffer | enabled |
| buffer_pool_size | server | enabled |
| buffer_pool_wait_free | buffer | enabled |
| buffer_pool_write_requests | buffer | enabled |
| compression_pad_decrements | compression | disabled |
| compression_pad_increments | compression | disabled |
| compress_pages_compressed | compression | disabled |
| compress_pages_decompressed | compression | disabled |
| ddl_background_drop_indexes | ddl | disabled |
| ddl_background_drop_tables | ddl | disabled |
| ddl_log_file_alter_table | ddl | disabled |
| ddl_online_create_index | ddl | disabled |
| ddl_pending_alter_table | ddl | disabled |
| ddl_sort_file_alter_table | ddl | disabled |
| dml_deletes | dml | enabled |
| dml_inserts | dml | enabled |
| dml_reads | dml | disabled |
| dml_updates | dml | enabled |
| file_num_open_files | file_system | enabled |
| ibuf_merges | change_buffer | enabled |
| ibuf_merges_delete | change_buffer | enabled |
| ibuf_merges_delete_mark | change_buffer | enabled |
| ibuf_merges_discard_delete | change_buffer | enabled |
| ibuf_merges_discard_delete_mark | change_buffer | enabled |
| ibuf_merges_discard_insert | change_buffer | enabled |
| ibuf_merges_insert | change_buffer | enabled |
| ibuf_size | change_buffer | enabled |
| icp_attempts | icp | disabled |
| icp_match | icp | disabled |
| icp_no_match | icp | disabled |
| icp_out_of_range | icp | disabled |
| index_page_discards | index | disabled |
| index_page_merge_attempts | index | disabled |
| index_page_merge_successful | index | disabled |
| index_page_reorg_attempts | index | disabled |
| index_page_reorg_successful | index | disabled |
| index_page_splits | index | disabled |
| innodb_activity_count | server | enabled |
| innodb_background_drop_table_usec | server | disabled |
| innodb_checkpoint_usec | server | disabled |
| innodb_dblwr_pages_written | server | enabled |
| innodb_dblwr_writes | server | enabled |
| innodb_dict_lru_count | server | disabled |
| innodb_dict_lru_usec | server | disabled |
| innodb_ibuf_merge_usec | server | disabled |
| innodb_log_flush_usec | server | disabled |
| innodb_master_active_loops | server | disabled |
| innodb_master_idle_loops | server | disabled |
| innodb_master_purge_usec | server | disabled |
| innodb_master_thread_sleeps | server | disabled |
| innodb_mem_validate_usec | server | disabled |
| innodb_page_size | server | enabled |
| innodb_rwlock_sx_os_waits | server | enabled |
| innodb_rwlock_sx_spin_rounds | server | enabled |
| innodb_rwlock_sx_spin_waits | server | enabled |
| innodb_rwlock_s_os_waits | server | enabled |
| innodb_rwlock_s_spin_rounds | server | enabled |
| innodb_rwlock_s_spin_waits | server | enabled |
| innodb_rwlock_x_os_waits | server | enabled |
| innodb_rwlock_x_spin_rounds | server | enabled |
| innodb_rwlock_x_spin_waits | server | enabled |
| lock_deadlocks | lock | enabled |
| lock_rec_locks | lock | disabled |
| lock_rec_lock_created | lock | disabled |
| lock_rec_lock_removed | lock | disabled |
| lock_rec_lock_requests | lock | disabled |
| lock_rec_lock_waits | lock | disabled |
| lock_row_lock_current_waits | lock | enabled |
| lock_row_lock_time | lock | enabled |
| lock_row_lock_time_avg | lock | enabled |
| lock_row_lock_time_max | lock | enabled |
| lock_row_lock_waits | lock | enabled |
| lock_table_locks | lock | disabled |
| lock_table_lock_created | lock | disabled |
| lock_table_lock_removed | lock | disabled |
| lock_table_lock_waits | lock | disabled |
| lock_timeouts | lock | enabled |
| log_checkpoints | recovery | disabled |
| log_lsn_buf_pool_oldest | recovery | disabled |
| log_lsn_checkpoint_age | recovery | disabled |
| log_lsn_current | recovery | disabled |
| log_lsn_last_checkpoint | recovery | disabled |
| log_lsn_last_flush | recovery | disabled |
| log_max_modified_age_async | recovery | disabled |
| log_max_modified_age_sync | recovery | disabled |
| log_num_log_io | recovery | disabled |
| log_padded | recovery | enabled |
| log_pending_checkpoint_writes | recovery | disabled |
| log_pending_log_flushes | recovery | disabled |
| log_waits | recovery | enabled |
| log_writes | recovery | enabled |
| log_write_requests | recovery | enabled |
| metadata_table_handles_closed | metadata | disabled |
| metadata_table_handles_opened | metadata | disabled |
| metadata_table_reference_count | metadata | disabled |
| os_data_fsyncs | os | enabled |
| os_data_reads | os | enabled |
| os_data_writes | os | enabled |
| os_log_bytes_written | os | enabled |
| os_log_fsyncs | os | enabled |
| os_log_pending_fsyncs | os | enabled |
| os_log_pending_writes | os | enabled |
| os_pending_reads | os | disabled |
| os_pending_writes | os | disabled |
| purge_del_mark_records | purge | disabled |
| purge_dml_delay_usec | purge | disabled |
| purge_invoked | purge | disabled |
| purge_resume_count | purge | disabled |
| purge_stop_count | purge | disabled |
| purge_undo_log_pages | purge | disabled |
| purge_upd_exist_or_extern_records | purge | disabled |
| trx_active_transactions | transaction | disabled |
| trx_commits_insert_update | transaction | disabled |
| trx_nl_ro_commits | transaction | disabled |
| trx_rollbacks | transaction | disabled |
| trx_rollbacks_savepoint | transaction | disabled |
| trx_rollback_active | transaction | disabled |
| trx_ro_commits | transaction | disabled |
| trx_rseg_current_size | transaction | disabled |
| trx_rseg_history_len | transaction | enabled |
| trx_rw_commits | transaction | disabled |
| trx_undo_slots_cached | transaction | disabled |
| trx_undo_slots_used | transaction | disabled |
+------------------------------------------+---------------------+----------+
235 rows in set (0.01 sec)
Counter Modules
The module names correspond to, but are not identical to, the values from the SUBSYSTEM
column of the INNODB_METRICS
table. Rather enabling, disabling, or resetting counters individually, you can use module names to quickly enable, disable, or reset all counters for a particular subsystem. For example, use module_dml
to enable all counters associated with the dml
subsystem. >>>>在上面启用,禁用,重置计数器部分,我们提到了 module name,module name和 innodb_metrics 表中的 SUBSYSTEM 数据是一一对应的,但是他们的名字并不完全相同,例如subsystem dml 的module name为module_dml。你可以通过 module name一次启用或者禁用或者重置属于某子系统的所有计数器。例如下面的例子,你可以通过module_dml 启用所有属于dml 子系统的计数器。
mysql> SET GLOBAL innodb_monitor_enable = module_dml;
mysql> SELECT name, subsystem, status FROM INFORMATION_SCHEMA.INNODB_METRICS
WHERE subsystem ='dml';
+-------------+-----------+---------+
| name | subsystem | status |
+-------------+-----------+---------+
| dml_reads | dml | enabled |
| dml_inserts | dml | enabled |
| dml_deletes | dml | enabled |
| dml_updates | dml | enabled |
+-------------+-----------+---------+
Here are the values you can use for module_name
with the innodb_monitor_enable
and related configuration options, along with the corresponding SUBSYSTEM
names: >>>>下面是 module_name 和 相应的 subsystem 一一对应关系
-
module_adaptive_hash
(subsystem =adaptive_hash_index
) -
module_buffer
(subsystem =buffer
) -
module_buffer_page
(subsystem =buffer_page_io
) -
module_compress
(subsystem =compression
) -
module_ddl
(subsystem =ddl
) -
module_dml
(subsystem =dml
) -
module_file
(subsystem =file_system
) -
module_ibuf_system
(subsystem =change_buffer
) -
module_icp
(subsystem =icp
) -
module_index
(subsystem =index
) -
module_innodb
(subsystem =innodb
) -
module_lock
(subsystem =lock
) -
module_log
(subsystem =recovery
) -
module_metadata
(subsystem =metadata
) -
module_os
(subsystem =os
) -
module_purge
(subsystem =purge
) -
module_trx
(subsystem =transaction
)
Example 14.11 Working with INNODB_METRICS Table Counters
This example demonstrates enabling, disabling, and resetting a counter, and querying counter data in the INNODB_METRICS
table. >>>>下面通过例子来演示,如何在命令行启用,禁用和重置某个计数器,并观察 innodb_metrics中 该计数器信息的变化。
-
Create a simple
InnoDB
table: >>>>创建一个 innodb 表(t1)mysql> USE test; Database changed mysql> CREATE TABLE t1 (c1 INT) ENGINE=INNODB; Query OK, 0 rows affected (0.02 sec)
-
Enable the
dml_inserts
counter. >>>>启用 dml_inserts 计数器mysql> SET GLOBAL innodb_monitor_enable = dml_inserts; Query OK, 0 rows affected (0.01 sec)
A description of the
dml_inserts
counter can be found in theCOMMENT
column of theINNODB_METRICS
table: >>>>关于每个计数器的描述,可以查看 innodb_metrics 表中 该计数器的comment字段mysql> SELECT NAME, COMMENT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts"; +-------------+-------------------------+ | NAME | COMMENT | +-------------+-------------------------+ | dml_inserts | Number of rows inserted | +-------------+-------------------------+
-
Query the
INNODB_METRICS
table for thedml_inserts
counter data. Because no DML operations have been performed, the counter values are zero or NULL. TheTIME_ENABLED
andTIME_ELAPSED
values indicate when the counter was last enabled and how many seconds have elapsed since this time. >>>>因为启用 dml_inserts 计数器后,还没有进行过insert操作,所以查看 innodb_metrics 表中 dml_inserts 计数器的 相关 count 值要么是0,要么是null(如 count列值为0,min_count值为null)。innodb_metrics 表中 TIME_ENABLED值表示该计数器最近一次启用的时间,TIME_ELAPSED值表示最近一次启用后到目前的时间间隔(单位为s) NOTE:注意,如果你需要禁用某计数器,在你重新启用前,最好对该计数器进行 innodb_monitor_reset_all 操作,否则你看到的AVG_COUNT值是不准确的mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts" \G *************************** 1. row *************************** NAME: dml_inserts SUBSYSTEM: dml COUNT: 0 MAX_COUNT: 0 MIN_COUNT: NULL AVG_COUNT: 0 COUNT_RESET: 0 MAX_COUNT_RESET: 0 MIN_COUNT_RESET: NULL AVG_COUNT_RESET: NULL TIME_ENABLED: 2014-12-04 14:18:28 TIME_DISABLED: NULL TIME_ELAPSED: 28 TIME_RESET: NULL STATUS: enabled TYPE: status_counter COMMENT: Number of rows inserted
-
Insert three rows of data into the table. >>>>向表中插入3条数据
mysql> INSERT INTO t1 values(1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO t1 values(2); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO t1 values(3); Query OK, 1 row affected (0.00 sec)
-
Query the
INNODB_METRICS
table again for thedml_inserts
counter data. A number of counter values have now incremented includingCOUNT
,MAX_COUNT
,AVG_COUNT
, andCOUNT_RESET
. Refer to theINNODB_METRICS
table definition for descriptions of these values. >>>>再次查看 innodb_metrics 表中 dml_inserts 计数器相关信息。我们发现COUNT,MAX_COUNT,AVG_COUNT,COUNT_RESET值都变成了3(因为插入了3条数据)。关于这些列的具体含义,请参照innodb_metrics表的定义mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts"\G *************************** 1. row *************************** NAME: dml_inserts SUBSYSTEM: dml COUNT: 3 MAX_COUNT: 3 MIN_COUNT: NULL AVG_COUNT: 0.046153846153846156 COUNT_RESET: 3 MAX_COUNT_RESET: 3 MIN_COUNT_RESET: NULL AVG_COUNT_RESET: NULL TIME_ENABLED: 2014-12-04 14:18:28 TIME_DISABLED: NULL TIME_ELAPSED: 65 TIME_RESET: NULL STATUS: enabled TYPE: status_counter COMMENT: Number of rows inserted
-
Reset the
dml_inserts
counter, and query theINNODB_METRICS
table again for thedml_inserts
counter data. The%_RESET
values that were reported previously, such asCOUNT_RESET
andMAX_RESET
, are set back to zero. Values such asCOUNT
,MAX_COUNT
, andAVG_COUNT
, which cumulatively collect data from the time the counter is enabled, are unaffected by the reset. >>>>重置 dml_inserts 计数器,然后再次观察 innodb_metrics 表中 dml_inserts 计数器的信息。我们发现重置后 %_RESET 相关值被清空,比如COUNT_RESET,MAX_RESET值被设置为0. COUNT,MAX_COUNT,AVG_COUNT列的值未受影响。mysql> SET GLOBAL innodb_monitor_reset = dml_inserts; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts"\G *************************** 1. row *************************** NAME: dml_inserts SUBSYSTEM: dml COUNT: 3 MAX_COUNT: 3 MIN_COUNT: NULL AVG_COUNT: 0.03529411764705882 COUNT_RESET: 0 MAX_COUNT_RESET: 0 MIN_COUNT_RESET: NULL AVG_COUNT_RESET: 0 TIME_ENABLED: 2014-12-04 14:18:28 TIME_DISABLED: NULL TIME_ELAPSED: 85 TIME_RESET: 2014-12-04 14:19:44 STATUS: enabled TYPE: status_counter COMMENT: Number of rows inserted
-
To reset all counter values, you must first disable the counter. Disabling the counter sets the
STATUS
value todisbaled
. >>>>现在我们尝试通过 innodb_monitor_reset_all ,看看结果和 通过 innodb_monitor_reset 重置的有什么不同(使用 innodb_monitor_reset_all 重置某个计数器前必须先 disable 该计数器)mysql> SET GLOBAL innodb_monitor_disable = dml_inserts; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts"\G *************************** 1. row *************************** NAME: dml_inserts SUBSYSTEM: dml COUNT: 3 MAX_COUNT: 3 MIN_COUNT: NULL AVG_COUNT: 0.030612244897959183 COUNT_RESET: 0 MAX_COUNT_RESET: 0 MIN_COUNT_RESET: NULL AVG_COUNT_RESET: 0 TIME_ENABLED: 2014-12-04 14:18:28 TIME_DISABLED: 2014-12-04 14:20:06 TIME_ELAPSED: 98 TIME_RESET: NULL STATUS: disabled TYPE: status_counter COMMENT: Number of rows inserted
NoteWildcard match is supported for counter and module names. For example, instead of specifying the full
dml_inserts
counter name, you can specifydml_i%
. You can also enable, disable, or reset multiple counters or modules at once using a wildcard match. For example, specifydml_%
to enable, disable, or reset all counters that begin withdml_%
. >>>>在启用,禁用,重置计数器时,counter name 和 module name 都支持通配符。比如 dml_inserts计数器你也可以 这样表达 dml_i%。你也可以通过使用通配符来启用,禁用,或者重置多个被匹配的counter或者 module。例如你可以通过指定 dml_%来启用,禁用,或者重置所有 dml_ 开头的计数器 -
After the counter is disabled, you can reset all counter values using the
innodb_monitor_reset_all
option. All values are set to zero or NULL. >>>>计数器被禁用后,你可在命令行以通过 innodb_monitor_reset_all 来重置该计数器。该计数器在innodb_metrics 中相关的值都被重置为 0 或者 null(innodb_monitor_reset 只是重置%_RESET相关值被重置为0或者null)mysql> SET GLOBAL innodb_monitor_reset_all = dml_inserts; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME="dml_inserts"\G *************************** 1. row *************************** NAME: dml_inserts SUBSYSTEM: dml COUNT: 0 MAX_COUNT: NULL MIN_COUNT: NULL AVG_COUNT: NULL COUNT_RESET: 0 MAX_COUNT_RESET: NULL MIN_COUNT_RESET: NULL AVG_COUNT_RESET: NULL TIME_ENABLED: NULL TIME_DISABLED: NULL TIME_ELAPSED: NULL TIME_RESET: NULL STATUS: disabled TYPE: status_counter COMMENT: Number of rows inserted