5.1.6. Server Status Variables
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 13.7.5.32, “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 |
+-----------------------------------+------------+
Before MySQL 5.0.2, SHOW STATUS
returned global status values. Because the default as of 5.0.2 is to return session values, this is incompatible with previous versions. To issue a SHOW STATUS
statement that will retrieve global status values for all versions of MySQL, write it like this:
SHOW /*!50002 GLOBAL */ STATUS;
Many status variables are reset to 0 by the FLUSH STATUS
statement.
The following table lists all available server status variables:
Table 5.4. Status Variable Summary
Variable Name | Variable Type | Variable Scope |
---|---|---|
Aborted_clients | numeric | GLOBAL |
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_create_user | 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_ndb_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_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_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_rnd | numeric | GLOBAL |
Innodb_buffer_pool_read_ahead_seq | 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_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_cluster_node_id | numeric | GLOBAL | SESSION |
Ndb_config_from_host | numeric | GLOBAL | SESSION |
Ndb_config_from_port | numeric | GLOBAL | SESSION |
ndb-nodeid | numeric | GLOBAL |
Not_flushed_delayed_rows | numeric | GLOBAL |
Open_files | numeric | GLOBAL |
Open_streams | numeric | GLOBAL |
Open_tables | numeric | GLOBAL | SESSION |
Opened_tables | numeric | GLOBAL | SESSION |
Prepared_stmt_count | 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_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_open_temp_tables | numeric | 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 |
The status variables have the following meanings. For meanings of status variables specific to MySQL Cluster, see Section 17.3.4.4, “MySQL Cluster Status Variables”.
-
The number of connections that were aborted because the client died without closing the connection properly. SeeSection C.5.2.11, “Communication Errors and Aborted Connections”.
-
The number of failed attempts to connect to the MySQL server. See Section C.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 eachxxx
xxx
statement has been executed. There is one status variable for each type of statement. For example,Com_delete
andCom_insert
countDELETE
andINSERT
statements, respectively. However, if a query result is returned from query cache, the server increments theQcache_hits
status variable, notCom_select
. See Section 8.6.3.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 were added in 5.0.8: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 asmysql_stmt_prepare(), mysql_stmt_execute(), and so forth are executed. However,xxx
Com_stmt_prepare
,Com_stmt_execute
andCom_stmt_close
also increase forPREPARE
,EXECUTE
, orDEALLOCATE PREPARE
, respectively. Additionally, the values of the older statement counter variablesCom_prepare_sql
,Com_execute_sql
, andCom_dealloc_sql
increase for thePREPARE
,EXECUTE
, andDEALLOCATE PREPARE
statements.Com_stmt_fetch
stands for the total number of network round-trips issued when fetching from cursors. -
-
Whether the client connection uses compression in the client/server protocol. Added in MySQL 5.0.16.
-
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
andmax_heap_table_size
values. IfCreated_tmp_disk_tables
is large, you may want to increase thetmp_table_size
ormax_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
andCreated_tmp_tables
variables.See also Section 8.8.5, “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
andCreated_tmp_tables
variables.See also Section 8.8.5, “How MySQL Uses Internal Temporary Tables”.
-
The number of rows written with
INSERT DELAYED
for which some error occurred (probablyduplicate key
). -
The number of
INSERT DELAYED
handler threads in use. -
The number of
INSERT DELAYED
rows written. -
The number of times the server flushes tables, whether because a user executed a
FLUSH TABLES
statement or due to internal server operation. It is also incremented by receipt of aCOM_REFRESH
packet. This is in contrast toCom_flush
, which indicates how manyFLUSH
statements have been executed, whetherFLUSH TABLES
,FLUSH LOGS
, and so forth. -
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. Added in MySQL 5.0.3.
-
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 thatcol1
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 do not 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. Added in MySQL 5.0.3.
-
The number of requests for a storage engine to roll back to a savepoint. Added in MySQL 5.0.3.
-
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). Added in MySQL 5.0.2.
-
Innodb_buffer_pool_pages_dirty
The number of pages currently dirty. Added in MySQL 5.0.2.
-
Innodb_buffer_pool_pages_flushed
The number of buffer pool page-flush requests. Added in MySQL 5.0.2.
-
The number of free pages. Added in MySQL 5.0.2.
-
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. Added in MySQL 5.0.2. Calculation of this variable is expensive, so as of MySQL 5.0.68, it is available only when theUNIV_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
. Added in MySQL 5.0.2. -
Innodb_buffer_pool_pages_total
The total size of buffer pool, in pages. Added in MySQL 5.0.2.
-
Innodb_buffer_pool_read_ahead_rnd
The number of “random” read-aheads initiated by
InnoDB
. This happens when a query scans a large portion of a table but in random order. Added in MySQL 5.0.2. -
Innodb_buffer_pool_read_ahead_seq
The number of sequential read-aheads initiated by
InnoDB
. This happens whenInnoDB
does a sequential full table scan. Added in MySQL 5.0.2. -
Innodb_buffer_pool_read_requests
The number of logical read requests
InnoDB
has done. Added in MySQL 5.0.2. -
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. Added in MySQL 5.0.2. -
Innodb_buffer_pool_write_requests
The number writes done to the
InnoDB
buffer pool. Added in MySQL 5.0.2. -
The number of
fsync()
operations so far. Added in MySQL 5.0.2. -
The current number of pending
fsync()
operations. Added in MySQL 5.0.2. -
The current number of pending reads. Added in MySQL 5.0.2.
-
The current number of pending writes. Added in MySQL 5.0.2.
-
The amount of data read since the server was started. Added in MySQL 5.0.2.
-
The total number of data reads. Added in MySQL 5.0.2.
-
The total number of data writes. Added in MySQL 5.0.2.
-
The amount of data written so far, in bytes. Added in MySQL 5.0.2.
-
The number of pages that have been written for doublewrite operations. Added in MySQL 5.0.2. SeeSection 14.2.11.1, “
InnoDB
Disk I/O”. -
The number of doublewrite operations that have been performed. Added in MySQL 5.0.2. See Section 14.2.11.1, “
InnoDB
Disk I/O”. -
The number of times that the log buffer was too small and a wait was required for it to be flushed before continuing. Added in MySQL 5.0.2.
-
The number of log write requests. Added in MySQL 5.0.2.
-
The number of physical writes to the log file. Added in MySQL 5.0.2.
-
The number of
fsync()
writes done to the log file. Added in MySQL 5.0.2. -
The number of pending log file
fsync()
operations. Added in MySQL 5.0.2. -
The number of pending log file writes. Added in MySQL 5.0.2.
-
The number of bytes written to the log file. Added in MySQL 5.0.2.
-
The compiled-in
InnoDB
page size (default 16KB). Many values are counted in pages; the page size permits them to be easily converted to bytes. Added in MySQL 5.0.2. -
The number of pages created. Added in MySQL 5.0.2.
-
The number of pages read. Added in MySQL 5.0.2.
-
The number of pages written. Added in MySQL 5.0.2.
-
The number of row locks currently being waited for. Added in MySQL 5.0.3.
-
The total time spent in acquiring row locks, in milliseconds. Added in MySQL 5.0.3.
-
The average time to acquire a row lock, in milliseconds. Added in MySQL 5.0.3.
-
The maximum time to acquire a row lock, in milliseconds. Added in MySQL 5.0.3.
-
The number of times a row lock had to be waited for. Added in MySQL 5.0.3.
-
The number of rows deleted from
InnoDB
tables. Added in MySQL 5.0.2. -
The number of rows inserted into
InnoDB
tables. Added in MySQL 5.0.2. -
The number of rows read from
InnoDB
tables. Added in MySQL 5.0.2. -
The number of rows updated in
InnoDB
tables. Added in MySQL 5.0.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 yourkey_buffer_size
value is probably too small. The cache miss rate can be calculated asKey_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. This variable was added in MySQL 5.0.1, with a default value of -1. In MySQL 5.0.7, the default was changed to 0; also in version 5.0.7, the scope of
Last_query_cost
was changed to session rather than global.The
Last_query_cost
value can be computed accurately only for simple “flat” queries, not complex queries such as those with subqueries orUNION
. For the latter, the value is set to 0.Prior to MySQL 5.0.16, this variable was not updated for queries served from the query cache.
-
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 DELAYED
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 tables that are open.
-
The number of tables that have been opened. If
Opened_tables
is big, yourtable_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.) This variable was added in MySQL 5.0.32. -
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. It does not countCOM_PING
orCOM_STATISTICS
commands. This variable was added in MySQL 5.0.76. -
The number of statements executed by the server. As of MySQL 5.0.72, this includes only statements sent to the server by clients and no longer includes statements executed within stored programs, unlike the
Queries
variable. This variable does not countCOM_PING
,COM_STATISTICS
,COM_STMT_PREPARE
,COM_STMT_CLOSE
, orCOM_STMT_RESET
commands. -
The status of fail-safe replication (not implemented). This variable is unused and is removed in MySQL 5.6.
-
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.
-
The number of temporary tables that the slave SQL thread currently has open. If the value is greater than zero, it is not safe to shut down the slave; see Section 16.4.1.15, “Replication and Temporary Tables”.
-
The total number of times since startup that the replication slave SQL thread has retried transactions. This variable was added in version 5.0.4.
-
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 isOFF
. -
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.4, “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 protocol version of the connection.
-
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
andTc_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.) Added in MySQL 5.0.3. -
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 forTc_log_max_pages_used
. Added in MySQL 5.0.3. -
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.) Added in MySQL 5.0.3. -
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 thethread_cache_size
value. The cache miss rate can be calculated asThreads_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. This variable was added in 5.0.35. (MySQL Community only)
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.