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