The server maintains many status variables that provide
information about its operation. You can view these variables and
their values by using the SHOW [GLOBAL | SESSION]
STATUS
statement (see Section 12.4.5.36, “SHOW STATUS
Syntax”).
The optional GLOBAL
keyword aggregates the
values over all connections, and SESSION
shows
the values for the current connection.
mysql> SHOW GLOBAL STATUS;
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Bytes_received | 155372598 |
| Bytes_sent | 1176560426 |
...
| Connections | 30023 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 3 |
| Created_tmp_tables | 2 |
...
| Threads_created | 217 |
| Threads_running | 88 |
| Uptime | 1389872 |
+-----------------------------------+------------+
The following table lists all available server status variables:
Table 5.5. Status Variable Summary
Variable Name | Variable Type | Variable Scope |
---|---|---|
Aborted_connects |
numeric | GLOBAL |
Binlog_cache_disk_use |
numeric | GLOBAL |
Binlog_cache_use |
numeric | GLOBAL |
Bytes_received |
numeric |
GLOBAL | SESSION
|
Bytes_sent |
numeric |
GLOBAL | SESSION
|
Com_admin_commands |
numeric |
GLOBAL | SESSION
|
Com_alter_db |
numeric |
GLOBAL | SESSION
|
Com_alter_event |
numeric |
GLOBAL | SESSION
|
Com_alter_table |
numeric |
GLOBAL | SESSION
|
Com_analyze |
numeric |
GLOBAL | SESSION
|
Com_backup_table |
numeric |
GLOBAL | SESSION
|
Com_begin |
numeric |
GLOBAL | SESSION
|
Com_call_procedure |
numeric |
GLOBAL | SESSION
|
Com_change_db |
numeric |
GLOBAL | SESSION
|
Com_change_master |
numeric |
GLOBAL | SESSION
|
Com_check |
numeric |
GLOBAL | SESSION
|
Com_checksum |
numeric |
GLOBAL | SESSION
|
Com_commit |
numeric |
GLOBAL | SESSION
|
Com_create_db |
numeric |
GLOBAL | SESSION
|
Com_create_event |
numeric |
GLOBAL | SESSION
|
Com_create_function |
numeric |
GLOBAL | SESSION
|
Com_create_index |
numeric |
GLOBAL | SESSION
|
Com_create_table |
numeric |
GLOBAL | SESSION
|
Com_dealloc_sql |
numeric |
GLOBAL | SESSION
|
Com_delete |
numeric |
GLOBAL | SESSION
|
Com_delete_multi |
numeric |
GLOBAL | SESSION
|
Com_do |
numeric |
GLOBAL | SESSION
|
Com_drop_db |
numeric |
GLOBAL | SESSION
|
Com_drop_event |
numeric |
GLOBAL | SESSION
|
Com_drop_function |
numeric |
GLOBAL | SESSION
|
Com_drop_index |
numeric |
GLOBAL | SESSION
|
Com_drop_table |
numeric |
GLOBAL | SESSION
|
Com_drop_user |
numeric |
GLOBAL | SESSION
|
Com_execute_sql |
numeric |
GLOBAL | SESSION
|
Com_flush |
numeric |
GLOBAL | SESSION
|
Com_grant |
numeric |
GLOBAL | SESSION
|
Com_ha_close |
numeric |
GLOBAL | SESSION
|
Com_ha_open |
numeric |
GLOBAL | SESSION
|
Com_ha_read |
numeric |
GLOBAL | SESSION
|
Com_help |
numeric |
GLOBAL | SESSION
|
Com_insert |
numeric |
GLOBAL | SESSION
|
Com_insert_select |
numeric |
GLOBAL | SESSION
|
Com_kill |
numeric |
GLOBAL | SESSION
|
Com_load |
numeric |
GLOBAL | SESSION
|
Com_lock_tables |
numeric |
GLOBAL | SESSION
|
Com_optimize |
numeric |
GLOBAL | SESSION
|
Com_preload_keys |
numeric |
GLOBAL | SESSION
|
Com_prepare_sql |
numeric |
GLOBAL | SESSION
|
Com_purge |
numeric |
GLOBAL | SESSION
|
Com_purge_before_date |
numeric |
GLOBAL | SESSION
|
Com_rename_table |
numeric |
GLOBAL | SESSION
|
Com_repair |
numeric |
GLOBAL | SESSION
|
Com_replace |
numeric |
GLOBAL | SESSION
|
Com_replace_select |
numeric |
GLOBAL | SESSION
|
Com_reset |
numeric |
GLOBAL | SESSION
|
Com_restore_table |
numeric |
GLOBAL | SESSION
|
Com_revoke |
numeric |
GLOBAL | SESSION
|
Com_revoke_all |
numeric |
GLOBAL | SESSION
|
Com_rollback |
numeric |
GLOBAL | SESSION
|
Com_savepoint |
numeric |
GLOBAL | SESSION
|
Com_select |
numeric |
GLOBAL | SESSION
|
Com_set_option |
numeric |
GLOBAL | SESSION
|
Com_show_binlog_events |
numeric |
GLOBAL | SESSION
|
Com_show_binlogs |
numeric |
GLOBAL | SESSION
|
Com_show_charsets |
numeric |
GLOBAL | SESSION
|
Com_show_collations |
numeric |
GLOBAL | SESSION
|
Com_show_column_types |
numeric |
GLOBAL | SESSION
|
Com_show_create_db |
numeric |
GLOBAL | SESSION
|
Com_show_create_event |
numeric |
GLOBAL | SESSION
|
Com_show_create_table |
numeric |
GLOBAL | SESSION
|
Com_show_databases |
numeric |
GLOBAL | SESSION
|
Com_show_engine_logs |
numeric |
GLOBAL | SESSION
|
Com_show_engine_mutex |
numeric |
GLOBAL | SESSION
|
Com_show_engine_status |
numeric |
GLOBAL | SESSION
|
Com_show_errors |
numeric |
GLOBAL | SESSION
|
Com_show_events |
numeric |
GLOBAL | SESSION
|
Com_show_fields |
numeric |
GLOBAL | SESSION
|
Com_show_grants |
numeric |
GLOBAL | SESSION
|
Com_show_innodb_status |
numeric |
GLOBAL | SESSION
|
Com_show_keys |
numeric |
GLOBAL | SESSION
|
Com_show_logs |
numeric |
GLOBAL | SESSION
|
Com_show_master_status |
numeric |
GLOBAL | SESSION
|
Com_show_new_master |
numeric |
GLOBAL | SESSION
|
Com_show_open_tables |
numeric |
GLOBAL | SESSION
|
Com_show_plugins |
numeric |
GLOBAL | SESSION
|
Com_show_privileges |
numeric |
GLOBAL | SESSION
|
Com_show_processlist |
numeric |
GLOBAL | SESSION
|
Com_show_profile |
numeric |
GLOBAL | SESSION
|
Com_show_profiles |
numeric |
GLOBAL | SESSION
|
Com_show_slave_hosts |
numeric |
GLOBAL | SESSION
|
Com_show_slave_status |
numeric |
GLOBAL | SESSION
|
Com_show_status |
numeric |
GLOBAL | SESSION
|
Com_show_storage_engines |
numeric |
GLOBAL | SESSION
|
Com_show_tables |
numeric |
GLOBAL | SESSION
|
Com_show_triggers |
numeric |
GLOBAL | SESSION
|
Com_show_variables |
numeric |
GLOBAL | SESSION
|
Com_show_warnings |
numeric |
GLOBAL | SESSION
|
Com_slave_start |
numeric |
GLOBAL | SESSION
|
Com_slave_stop |
numeric |
GLOBAL | SESSION
|
Com_stmt_close |
numeric |
GLOBAL | SESSION
|
Com_stmt_execute |
numeric |
GLOBAL | SESSION
|
Com_stmt_fetch |
numeric |
GLOBAL | SESSION
|
Com_stmt_prepare |
numeric |
GLOBAL | SESSION
|
Com_stmt_reprepare |
numeric |
GLOBAL | SESSION
|
Com_stmt_reset |
numeric |
GLOBAL | SESSION
|
Com_stmt_send_long_data |
numeric |
GLOBAL | SESSION
|
Com_truncate |
numeric |
GLOBAL | SESSION
|
Com_unlock_tables |
numeric |
GLOBAL | SESSION
|
Com_update |
numeric |
GLOBAL | SESSION
|
Com_update_multi |
numeric |
GLOBAL | SESSION
|
Com_xa_commit |
numeric |
GLOBAL | SESSION
|
Com_xa_end |
numeric |
GLOBAL | SESSION
|
Com_xa_prepare |
numeric |
GLOBAL | SESSION
|
Com_xa_recover |
numeric |
GLOBAL | SESSION
|
Com_xa_rollback |
numeric |
GLOBAL | SESSION
|
Com_xa_start |
numeric |
GLOBAL | SESSION
|
Compression |
numeric | SESSION |
Connections |
numeric | GLOBAL |
Created_tmp_disk_tables |
numeric |
GLOBAL | SESSION
|
Created_tmp_files |
numeric | GLOBAL |
Created_tmp_tables |
numeric |
GLOBAL | SESSION
|
Delayed_errors |
numeric | GLOBAL |
Delayed_insert_threads |
numeric | GLOBAL |
Delayed_writes |
numeric | GLOBAL |
Flush_commands |
numeric | GLOBAL |
Handler_commit |
numeric |
GLOBAL | SESSION
|
Handler_delete |
numeric |
GLOBAL | SESSION
|
Handler_discover |
numeric |
GLOBAL | SESSION
|
Handler_prepare |
numeric |
GLOBAL | SESSION
|
Handler_read_first |
numeric |
GLOBAL | SESSION
|
Handler_read_key |
numeric |
GLOBAL | SESSION
|
Handler_read_next |
numeric |
GLOBAL | SESSION
|
Handler_read_prev |
numeric |
GLOBAL | SESSION
|
Handler_read_rnd |
numeric |
GLOBAL | SESSION
|
Handler_read_rnd_next |
numeric |
GLOBAL | SESSION
|
Handler_rollback |
numeric |
GLOBAL | SESSION
|
Handler_savepoint |
numeric |
GLOBAL | SESSION
|
Handler_savepoint_rollback |
numeric |
GLOBAL | SESSION
|
Handler_update |
numeric |
GLOBAL | SESSION
|
Handler_write |
numeric |
GLOBAL | SESSION
|
Innodb_buffer_pool_pages_data |
numeric | GLOBAL |
Innodb_buffer_pool_pages_dirty |
numeric | GLOBAL |
Innodb_buffer_pool_pages_flushed |
numeric | GLOBAL |
Innodb_buffer_pool_pages_free |
numeric | GLOBAL |
Innodb_buffer_pool_pages_latched |
numeric | GLOBAL |
Innodb_buffer_pool_pages_misc |
numeric | GLOBAL |
Innodb_buffer_pool_pages_total |
numeric | GLOBAL |
Innodb_buffer_pool_read_ahead |
numeric | GLOBAL |
Innodb_buffer_pool_read_ahead_evicted |
numeric | GLOBAL |
Innodb_buffer_pool_read_requests |
numeric | GLOBAL |
Innodb_buffer_pool_reads |
numeric | GLOBAL |
Innodb_buffer_pool_wait_free |
numeric | GLOBAL |
Innodb_buffer_pool_write_requests |
numeric | GLOBAL |
Innodb_data_fsyncs |
numeric | GLOBAL |
Innodb_data_pending_fsyncs |
numeric | GLOBAL |
Innodb_data_pending_reads |
numeric | GLOBAL |
Innodb_data_pending_writes |
numeric | GLOBAL |
Innodb_data_read |
numeric | GLOBAL |
Innodb_data_reads |
numeric | GLOBAL |
Innodb_data_writes |
numeric | GLOBAL |
Innodb_data_written |
numeric | GLOBAL |
Innodb_dblwr_pages_written |
numeric | GLOBAL |
Innodb_dblwr_writes |
numeric | GLOBAL |
Innodb_have_atomic_builtins |
numeric | GLOBAL |
Innodb_log_waits |
numeric | GLOBAL |
Innodb_log_write_requests |
numeric | GLOBAL |
Innodb_log_writes |
numeric | GLOBAL |
Innodb_os_log_fsyncs |
numeric | GLOBAL |
Innodb_os_log_pending_fsyncs |
numeric | GLOBAL |
Innodb_os_log_pending_writes |
numeric | GLOBAL |
Innodb_os_log_written |
numeric | GLOBAL |
Innodb_page_size |
numeric | GLOBAL |
Innodb_pages_created |
numeric | GLOBAL |
Innodb_pages_read |
numeric | GLOBAL |
Innodb_pages_written |
numeric | GLOBAL |
Innodb_row_lock_current_waits |
numeric | GLOBAL |
Innodb_row_lock_time |
numeric | GLOBAL |
Innodb_row_lock_time_avg |
numeric | GLOBAL |
Innodb_row_lock_time_max |
numeric | GLOBAL |
Innodb_row_lock_waits |
numeric | GLOBAL |
Innodb_rows_deleted |
numeric | GLOBAL |
Innodb_rows_inserted |
numeric | GLOBAL |
Innodb_rows_read |
numeric | GLOBAL |
Innodb_rows_updated |
numeric | GLOBAL |
Key_blocks_not_flushed |
numeric | GLOBAL |
Key_blocks_unused |
numeric | GLOBAL |
Key_blocks_used |
numeric | GLOBAL |
Key_read_requests |
numeric | GLOBAL |
Key_reads |
numeric | GLOBAL |
Key_write_requests |
numeric | GLOBAL |
Key_writes |
numeric | GLOBAL |
Last_query_cost |
numeric | SESSION |
Max_used_connections |
numeric | GLOBAL |
Ndb_conflict_fn_max |
numeric | GLOBAL |
Ndb_conflict_fn_old |
numeric | GLOBAL |
Ndb_number_of_data_nodes |
numeric | GLOBAL |
Not_flushed_delayed_rows |
numeric | GLOBAL |
Open_files |
numeric | GLOBAL |
Open_streams |
numeric | GLOBAL |
Open_table_definitions |
numeric | GLOBAL |
Open_tables |
numeric |
GLOBAL | SESSION
|
Opened_files |
numeric | GLOBAL |
Opened_table_definitions |
numeric |
GLOBAL | SESSION
|
Opened_tables |
numeric |
GLOBAL | SESSION
|
Performance_schema_cond_classes_lost |
numeric | GLOBAL |
Performance_schema_cond_instances_lost |
numeric | GLOBAL |
Performance_schema_file_classes_lost |
numeric | GLOBAL |
Performance_schema_file_handles_lost |
numeric | GLOBAL |
Performance_schema_file_instances_lost |
numeric | GLOBAL |
Performance_schema_locker_lost |
numeric | GLOBAL |
Performance_schema_mutex_classes_lost |
numeric | GLOBAL |
Performance_schema_mutex_instances_lost |
numeric | GLOBAL |
Performance_schema_rwlock_classes_lost |
numeric | GLOBAL |
Performance_schema_rwlock_instances_lost |
numeric | GLOBAL |
Performance_schema_table_handles_lost |
numeric | GLOBAL |
Performance_schema_table_instances_lost |
numeric | GLOBAL |
Performance_schema_thread_classes_lost |
numeric | GLOBAL |
Performance_schema_thread_instances_lost |
numeric | GLOBAL |
Qcache_free_blocks |
numeric | GLOBAL |
Qcache_free_memory |
numeric | GLOBAL |
Qcache_hits |
numeric | GLOBAL |
Qcache_inserts |
numeric | GLOBAL |
Qcache_lowmem_prunes |
numeric | GLOBAL |
Qcache_not_cached |
numeric | GLOBAL |
Qcache_queries_in_cache |
numeric | GLOBAL |
Qcache_total_blocks |
numeric | GLOBAL |
Queries |
numeric |
GLOBAL | SESSION
|
Questions |
numeric |
GLOBAL | SESSION
|
Rpl_semi_sync_master_clients |
numeric | GLOBAL |
Rpl_semi_sync_master_net_avg_wait_time |
numeric | GLOBAL |
Rpl_semi_sync_master_net_wait_time |
numeric | GLOBAL |
Rpl_semi_sync_master_net_waits |
numeric | GLOBAL |
Rpl_semi_sync_master_no_times |
numeric | GLOBAL |
Rpl_semi_sync_master_no_tx |
numeric | GLOBAL |
Rpl_semi_sync_master_status |
numeric | GLOBAL |
Rpl_semi_sync_master_timefunc_failures |
numeric | GLOBAL |
Rpl_semi_sync_master_tx_avg_wait_time |
numeric | GLOBAL |
Rpl_semi_sync_master_tx_wait_time |
numeric | GLOBAL |
Rpl_semi_sync_master_tx_waits |
numeric | GLOBAL |
Rpl_semi_sync_master_wait_pos_backtraverse |
numeric | GLOBAL |
Rpl_semi_sync_master_wait_sessions |
numeric | GLOBAL |
Rpl_semi_sync_master_yes_tx |
numeric | GLOBAL |
Rpl_semi_sync_slave_status |
numeric | GLOBAL |
Rpl_status |
string | GLOBAL |
Select_full_join |
numeric |
GLOBAL | SESSION
|
Select_full_range_join |
numeric |
GLOBAL | SESSION
|
Select_range |
numeric |
GLOBAL | SESSION
|
Select_range_check |
numeric |
GLOBAL | SESSION
|
Select_scan |
numeric |
GLOBAL | SESSION
|
Slave_heartbeat_period |
GLOBAL |
|
Slave_open_temp_tables |
numeric | GLOBAL |
Slave_received_heartbeats |
GLOBAL |
|
Slave_retried_transactions |
numeric | GLOBAL |
Slave_running |
boolean | GLOBAL |
Slow_launch_threads |
numeric |
GLOBAL | SESSION
|
Slow_queries |
numeric |
GLOBAL | SESSION
|
Sort_merge_passes |
numeric |
GLOBAL | SESSION
|
Sort_range |
numeric |
GLOBAL | SESSION
|
Sort_rows |
numeric |
GLOBAL | SESSION
|
Sort_scan |
numeric |
GLOBAL | SESSION
|
Ssl_accept_renegotiates |
numeric | GLOBAL |
Ssl_accepts |
numeric | GLOBAL |
Ssl_callback_cache_hits |
numeric | GLOBAL |
Ssl_cipher |
string |
GLOBAL | SESSION
|
Ssl_cipher_list |
string |
GLOBAL | SESSION
|
Ssl_client_connects |
numeric | GLOBAL |
Ssl_connect_renegotiates |
numeric | GLOBAL |
Ssl_ctx_verify_depth |
numeric | GLOBAL |
Ssl_ctx_verify_mode |
numeric | GLOBAL |
Ssl_default_timeout |
numeric |
GLOBAL | SESSION
|
Ssl_finished_accepts |
numeric | GLOBAL |
Ssl_finished_connects |
numeric | GLOBAL |
Ssl_session_cache_hits |
numeric | GLOBAL |
Ssl_session_cache_misses |
numeric | GLOBAL |
Ssl_session_cache_mode |
string | GLOBAL |
Ssl_session_cache_overflows |
numeric | GLOBAL |
Ssl_session_cache_size |
numeric | GLOBAL |
Ssl_session_cache_timeouts |
numeric | GLOBAL |
Ssl_sessions_reused |
numeric |
GLOBAL | SESSION
|
Ssl_used_session_cache_entries |
numeric | GLOBAL |
Ssl_verify_depth |
numeric |
GLOBAL | SESSION
|
Ssl_verify_mode |
numeric |
GLOBAL | SESSION
|
Ssl_version |
string |
GLOBAL | SESSION
|
Table_locks_immediate |
numeric | GLOBAL |
Table_locks_waited |
numeric | GLOBAL |
Tc_log_max_pages_used |
numeric | GLOBAL |
Tc_log_page_size |
numeric | GLOBAL |
Tc_log_page_waits |
numeric | GLOBAL |
Threads_cached |
numeric | GLOBAL |
Threads_connected |
numeric | GLOBAL |
Threads_created |
numeric | GLOBAL |
Threads_running |
numeric | GLOBAL |
Uptime |
numeric | GLOBAL |
Uptime_since_flush_status |
numeric | GLOBAL |
Many status variables are reset to 0 by the FLUSH
STATUS
statement.
MySQL Enterprise. For expert advice on using status variables, subscribe to the MySQL Enterprise Monitor. For more information, see http://www.mysql.com/products/enterprise/advisors.html.
The status variables have the following meanings. Variables with no version indicated were already present prior to MySQL 5.5. For information regarding their implementation history, see MySQL 5.4 Reference Manual.
The number of connections that were aborted because the client died without closing the connection properly. See Section B.5.2.11, “Communication Errors and Aborted Connections”.
The number of failed attempts to connect to the MySQL server. See Section B.5.2.11, “Communication Errors and Aborted Connections”.
The number of transactions that used the temporary binary log
cache but that exceeded the value of
binlog_cache_size
and used a
temporary file to store statements from the transaction.
The number of transactions that used the temporary binary log cache.
The number of bytes received from all clients.
The number of bytes sent to all clients.
The Com_
statement counter variables indicate the number of times each
xxx
xxx
statement has been executed.
There is one status variable for each type of statement. For
example, Com_delete
and
Com_insert
count
DELETE
and
INSERT
statements,
respectively. However, if a query result is returned from
query cache, the server increments the
Qcache_hits
status variable,
not Com_select
. See
Section 7.5.5.4, “Query Cache Status and Maintenance”.
All of the
Com_stmt_
variables are increased even if a prepared statement argument
is unknown or an error occurred during execution. In other
words, their values correspond to the number of requests
issued, not to the number of requests successfully completed.
xxx
The Com_stmt_
status variables are as follows:
xxx
Com_stmt_prepare
Com_stmt_execute
Com_stmt_fetch
Com_stmt_send_long_data
Com_stmt_reset
Com_stmt_close
Those variables stand for prepared statement commands. Their
names refer to the
COM_
command
set used in the network layer. In other words, their values
increase whenever prepared statement API calls such as
mysql_stmt_prepare(),
mysql_stmt_execute(), and so forth are
executed. However, xxx
Com_stmt_prepare
,
Com_stmt_execute
and
Com_stmt_close
also increase for
PREPARE
,
EXECUTE
, or
DEALLOCATE PREPARE
,
respectively. Additionally, the values of the older statement
counter variables Com_prepare_sql
,
Com_execute_sql
, and
Com_dealloc_sql
increase for the
PREPARE
,
EXECUTE
, and
DEALLOCATE PREPARE
statements.
Com_stmt_fetch
stands for the total number
of network round-trips issued when fetching from cursors.
Com_stmt_reprepare
indicated the number of
times statements were automatically reprepared by the server
after metadata changes to tables or views referred to by the
statement. A reprepare operation increments
Com_stmt_reprepare
is incremented, and also
Com_stmt_prepare
.
Whether the client connection uses compression in the client/server protocol.
The number of connection attempts (successful or not) to the MySQL server.
The number of internal on-disk temporary tables created by the server while executing statements.
If an internal temporary table is created initially as an
in-memory table but becomes too large, MySQL automatically
converts it to an on-disk table. The maximum size for
in-memory temporary tables is the minimum of the
tmp_table_size
and
max_heap_table_size
values.
If Created_tmp_disk_tables
is large, you may want to increase the
tmp_table_size
or
max_heap_table_size
values.
value to lessen the likelihood that internal temporary tables
in memory will be converted to on-disk tables.
You can compare the number of internal on-disk temporary
tables created to the total number of internal temporary
tables created by comparing the values of the
Created_tmp_disk_tables
and
Created_tmp_tables
variables.
See also Section 7.5.10, “How MySQL Uses Internal Temporary Tables”.
How many temporary files mysqld has created.
The number of internal temporary tables created by the server while executing statements.
You can compare the number of internal on-disk temporary
tables created to the total number of internal temporary
tables created by comparing the values of the
Created_tmp_disk_tables
and
Created_tmp_tables
variables.
See also Section 7.5.10, “How MySQL Uses Internal Temporary Tables”.
Each invocation of the SHOW
STATUS
statement uses an internal temporary table
and increments the global
Created_tmp_tables
value.
The number of rows written with INSERT
DELAYED
for which some error occurred (probably
duplicate key
).
The number of INSERT DELAYED
handler threads in use.
The number of INSERT DELAYED
rows written.
The number of executed FLUSH
statements.
The number of internal COMMIT
statements.
The number of times that rows have been deleted from tables.
A counter for the prepare phase of two-phase commit operations.
The number of times the first entry in an index was read. If
this value is high, it suggests that the server is doing a lot
of full index scans; for example, SELECT col1 FROM
foo
, assuming that col1
is
indexed.
The number of requests to read a row based on a key. If this value is high, it is a good indication that your tables are properly indexed for your queries.
The number of requests to read the next row in key order. This value is incremented if you are querying an index column with a range constraint or if you are doing an index scan.
The number of requests to read the previous row in key order.
This read method is mainly used to optimize ORDER BY
... DESC
.
The number of requests to read a row based on a fixed position. This value is high if you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan entire tables or you have joins that don't use keys properly.
The number of requests to read the next row in the data file. This value is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have.
The number of requests for a storage engine to perform a rollback operation.
The number of requests for a storage engine to place a savepoint.
The number of requests for a storage engine to roll back to a savepoint.
The number of requests to update a row in a table.
The number of requests to insert a row in a table.
The number of pages containing data (dirty or clean).
Innodb_buffer_pool_pages_dirty
The number of pages currently dirty.
Innodb_buffer_pool_pages_flushed
The number of buffer pool page-flush requests.
The number of free pages.
Innodb_buffer_pool_pages_latched
The number of latched pages in InnoDB
buffer pool. These are pages currently being read or written
or that cannot be flushed or removed for some other reason.
Calculation of this variable is expensive, so it is available
only when the UNIV_DEBUG
system is defined
at server build time.
The number of pages that are busy because they have been
allocated for administrative overhead such as row locks or the
adaptive hash index. This value can also be calculated as
Innodb_buffer_pool_pages_total
–
Innodb_buffer_pool_pages_free
–
Innodb_buffer_pool_pages_data
.
Innodb_buffer_pool_pages_total
The total size of the buffer pool, in pages.
The number of pages read into the InnoDB
buffer pool by the read-ahead background thread.
Innodb_buffer_pool_read_ahead_evicted
The number of pages read into the InnoDB
buffer pool by the read-ahead background thread that were
subsequently evicted without having been accessed by queries.
Innodb_buffer_pool_read_requests
The number of logical read requests InnoDB
has done.
The number of logical reads that InnoDB
could not satisfy from the buffer pool, and had to read
directly from the disk.
Normally, writes to the InnoDB
buffer pool
happen in the background. However, if it is necessary to read
or create a page and no clean pages are available, it is also
necessary to wait for pages to be flushed first. This counter
counts instances of these waits. If the buffer pool size has
been set properly, this value should be small.
Innodb_buffer_pool_write_requests
The number writes done to the InnoDB
buffer
pool.
The number of fsync()
operations so far.
The current number of pending fsync()
operations.
The current number of pending reads.
The current number of pending writes.
The amount of data read since the server was started.
The total number of data reads.
The total number of data writes.
The amount of data written so far, in bytes.
The number of pages that have been written for doublewrite
operations. See Section 13.6.11.1, “InnoDB
Disk I/O”.
The number of doublewrite operations that have been performed.
See Section 13.6.11.1, “InnoDB
Disk I/O”.
Indicates whether the server was built with atomic instructions. This variable was added in in MySQL 5.4.2.
Indicates whether the server was built with atomic
instructions. This variable was renamed to
Innodb_have_atomic_builtins
in MySQL 5.4.2.
Indicates whether the built-in
InnoDB
memory manager is used.
(ON
means it is used,
OFF
means it is not.) This variable was
removed in in MySQL 5.4.2.
The number of times that the log buffer was too small and a wait was required for it to be flushed before continuing.
The number of log write requests.
The number of physical writes to the log file.
The number of fsync()
writes done to the
log file.
The number of pending log file fsync()
operations.
The number of pending log file writes.
The number of bytes written to the log file.
The compiled-in InnoDB
page size (default
16KB). Many values are counted in pages; the page size allows
them to be easily converted to bytes.
The number of pages created.
The number of pages read.
The number of pages written.
The number of row locks currently being waited for.
The total time spent in acquiring row locks, in milliseconds.
The average time to acquire a row lock, in milliseconds.
The maximum time to acquire a row lock, in milliseconds.
The number of times a row lock had to be waited for.
The number of rows deleted from InnoDB
tables.
The number of rows inserted into InnoDB
tables.
The number of rows read from InnoDB
tables.
The number of rows updated in InnoDB
tables.
The number of wakeups that should not have occurred. These are wakeups in a condition on a mutex when the condition is not yet met so the thread must go back to sleep. This variable was removed in in MySQL 5.4.2.
The number of key blocks in the key cache that have changed but have not yet been flushed to disk.
The number of unused blocks in the key cache. You can use this
value to determine how much of the key cache is in use; see
the discussion of
key_buffer_size
in
Section 5.1.4, “Server System Variables”.
The number of used blocks in the key cache. This value is a high-water mark that indicates the maximum number of blocks that have ever been in use at one time.
The number of requests to read a key block from the cache.
The number of physical reads of a key block from disk. If
Key_reads
is large, then
your key_buffer_size
value is
probably too small. The cache miss rate can be calculated as
Key_reads
/Key_read_requests
.
The number of requests to write a key block to the cache.
The number of physical writes of a key block to disk.
The total cost of the last compiled query as computed by the
query optimizer. This is useful for comparing the cost of
different query plans for the same query. The default value of
0 means that no query has been compiled yet. The default value
is 0. Last_query_cost
has
session scope.
The Last_query_cost
value
can be computed accurately only for simple “flat”
queries, not complex queries such as those with subqueries or
UNION
. For the latter, the
value is set to 0.
The maximum number of connections that have been in use simultaneously since the server started.
The number of rows waiting to be written in INSERT
DELAY
queues.
The number of files that are open. This count includes regular files opened by the server. It does not include other types of files such as sockets or pipes. Also, the count does not include files that storage engines open using their own internal functions rather than asking the server level to do so.
The number of streams that are open (used mainly for logging).
The number of cached .frm
files.
The number of tables that are open.
The number of files that have been opened with
my_open()
(a mysys
library function). Parts of the server that open files without
using this function do not increment the count.
The number of .frm
files that have been
cached.
The number of tables that have been opened. If
Opened_tables
is big, your
table_open_cache
value is
probably too small.
The current number of prepared statements. (The maximum number
of statements is given by the
max_prepared_stmt_count
system variable.)
The number of free memory blocks in the query cache.
The amount of free memory for the query cache.
The number of query cache hits.
The number of queries added to the query cache.
The number of queries that were deleted from the query cache because of low memory.
The number of noncached queries (not cacheable, or not cached
due to the query_cache_type
setting).
The number of queries registered in the query cache.
The total number of blocks in the query cache.
The number of statements executed by the server. This variable
includes statements executed within stored programs, unlike
the Questions
variable.
The number of statements executed by the server. This includes
only statements sent to the server by clients and not
statements executed within stored programs, unlike the
Queries
variable.
The number of semisynchronous slaves.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_net_avg_wait_time
The average time the master waited for a slave reply.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_net_wait_time
The total time the master waited for slave replies.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_net_waits
The total number of times the master waited for slave replies.
This variable is available only if the master-side semisynchronous replication plugin is installed.
The number of times the master turned off semisynchronous replication.
This variable is available only if the master-side semisynchronous replication plugin is installed.
The number of commits that were not acknowledged successfully by a slave.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Whether semisynchronous replication currently is operational on the master. The value is 1 if the plugin has been enabled and a commit acknowledgment has not occurred. It is 0 if the plugin is not enabled or the master has fallen back to asynchronous replication due to commit acknowledgment timeout.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_timefunc_failures
The number of times the master failed when calling time
functions such as gettimeofday()
.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_tx_avg_wait_time
The average time the master waited for each transaction.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_tx_wait_time
The total time the master waited for transactions.
This variable is available only if the master-side semisynchronous replication plugin is installed.
The total number of times the master waited for transactions.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_wait_pos_backtraverse
The total number of times the master waited for an event with binary coordinates lower than events waited for previously. This can occur when the order in which transactions start waiting for a reply is different from the order in which their binary log events are written.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Rpl_semi_sync_master_wait_sessions
The number of sessions currently waiting for slave replies.
This variable is available only if the master-side semisynchronous replication plugin is installed.
The number of commits that were acknowledged successfully by a slave.
This variable is available only if the master-side semisynchronous replication plugin is installed.
Whether semisynchronous replication currently is operational on the slave. This is 1 if the plugin has been enabled and the slave I/O thread is running, 0 otherwise.
This variable is available only if the slave-side semisynchronous replication plugin is installed.
The status of fail-safe replication (not yet implemented).
The number of joins that perform table scans because they do not use indexes. If this value is not 0, you should carefully check the indexes of your tables.
The number of joins that used a range search on a reference table.
The number of joins that used ranges on the first table. This is normally not a critical issue even if the value is quite large.
The number of joins without keys that check for key usage after each row. If this is not 0, you should carefully check the indexes of your tables.
The number of joins that did a full scan of the first table.
Shows the replication heartbeat interval (in seconds) on a replication slave.
The number of temporary tables that the slave SQL thread currently has open.
This counter increments with each replication heartbeat
received by a replication slave since the last time that the
slave was restarted or reset, or a CHANGE
MASTER TO
statement was issued.
The total number of times since startup that the replication slave SQL thread has retried transactions.
This is ON
if this server is a replication
slave that is connected to a replication master, and both the
I/O and SQL threads are running; otherwise, it is
OFF
.
The number of threads that have taken more than
slow_launch_time
seconds to
create.
The number of queries that have taken more than
long_query_time
seconds. See
Section 5.2.5, “The Slow Query Log”.
The number of merge passes that the sort algorithm has had to
do. If this value is large, you should consider increasing the
value of the sort_buffer_size
system variable.
The number of sorts that were done using ranges.
The number of sorted rows.
The number of sorts that were done by scanning the table.
The number of negotiates needed to establish the connection.
The number of accepted SSL connections.
The number of callback cache hits.
The current SSL cipher (empty for non-SSL connections).
The list of possible SSL ciphers.
The number of SSL connection attempts to an SSL-enabled master.
The number of negotiates needed to establish the connection to an SSL-enabled master.
The SSL context verification depth (how many certificates in the chain are tested).
The SSL context verification mode.
The default SSL timeout.
The number of successful SSL connections to the server.
The number of successful slave connections to an SSL-enabled master.
The number of SSL session cache hits.
The number of SSL session cache misses.
The SSL session cache mode.
The number of SSL session cache overflows.
The SSL session cache size.
The number of SSL session cache timeouts.
How many SSL connections were reused from the cache.
Ssl_used_session_cache_entries
How many SSL session cache entries were used.
The verification depth for replication SSL connections.
The verification mode for replication SSL connections.
The SSL version number.
The number of times that a request for a table lock could be granted immediately.
The number of times that a request for a table lock could not be granted immediately and a wait was needed. If this is high and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.
For the memory-mapped implementation of the log that is used
by mysqld when it acts as the transaction
coordinator for recovery of internal XA transactions, this
variable indicates the largest number of pages used for the
log since the server started. If the product of
Tc_log_max_pages_used
and
Tc_log_page_size
is always
significantly less than the log size, the size is larger than
necessary and can be reduced. (The size is set by the
--log-tc-size
option.
Currently, this variable is unused: It is unneeded for binary
log-based recovery, and the memory-mapped recovery log method
is not used unless the number of storage engines capable of
two-phase commit is greater than one.
(InnoDB
is the only applicable engine.)
The page size used for the memory-mapped implementation of the
XA recovery log. The default value is determined using
getpagesize()
. Currently, this variable is
unused for the same reasons as described for
Tc_log_max_pages_used
.
For the memory-mapped implementation of the recovery log, this
variable increments each time the server was not able to
commit a transaction and had to wait for a free page in the
log. If this value is large, you might want to increase the
log size (with the
--log-tc-size
option). For
binary log-based recovery, this variable increments each time
the binary log cannot be closed because there are two-phase
commits in progress. (The close operation waits until all such
transactions are finished.)
The number of threads in the thread cache.
The number of currently open connections.
The number of threads created to handle connections. If
Threads_created
is big, you
may want to increase the
thread_cache_size
value. The
cache miss rate can be calculated as
Threads_created
/Connections
.
The number of threads that are not sleeping.
The number of seconds that the server has been up.
The number of seconds since the most recent FLUSH
STATUS
statement.
User Comments
Reading the explanation for Handler read rnd next , I question it! I list some number from a test db that does almost all accesses by locating a record with a key (GE or xxx%) and then using next to access related record; yet the Handler read rnd next is relatively large.
Handler read key 42053
Handler read next 453703
Handler read rnd 696
Handler read rnd next 104378
On MySQL 5.0 the com_* variables of 'show status' are counted for the current connection only. The new undocumented command 'show global status' shows server-wide counters. (http://bugs.mysql.com/bug.php?id=19422)
In version 4.0.17, the explanation to Handler_ is different:
Example:
Handler_delete:
The number of times a row was deleted from a table.
Handler_update
The number of requests to update a row in a table.
Handler_write
The number of requests to insert a row in a table.
Could this be a typo for Handler_delete? Because requests and rows updated/deleted/inserted are different concept.
Sheila
There's a bug in 5.0.36 (and likely surrounding versions) for Handler_write: it increases by one every time a row from SHOW STATUS is displayed:
1 row in set (0.00 sec)------
mysql> FLUSH STATUS;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GLOBAL STATUS; SHOW SESSION STATUS;
[...] 224 rows in set (0.01 sec)
[...] 224 rows in set (0.01 sec)
mysql> SHOW SESSION STATUS LIKE 'Handler_write';
------
Given the bug for Handler_write it is not possible to find out how many rows were inserted in this version, unless you use a workaround:
Rows_inserted= Handler_write - (number of times SHOW STATUS was run * number of rows SHOW STATUS displayed)
This could be programmed further using the Com_show_status variable:
--------
mysql> SHOW SESSION STATUS LIKE 'Com_show_status';
1 row in set (0.00 sec)
--------
So, on a system/version that had 224 rows in SHOW STATUS (please check), the workaround formula would be:
Rows_inserted=Handler_write-(Com_show_status * 224)
Note though that this workaround does not work when using partial SHOW STATUS statements (using LIKE etc) from time to time.
Add your own comment.