MySQL 5.1 Reference Manual  /  ...  /  Server Status Variables

5.1.6 Server Status Variables

The MySQL 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, “SHOW STATUS Syntax”). The optional GLOBAL keyword aggregates the values over all connections, and SESSION shows the values for the current connection.

| 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    |

Several status variables provide statement counts. To determine the number of statements executed, use these relationships:

  SUM(Com_xxx) + Qcache_hits
= Questions + statements executed within stored programs
= Queries

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 NameVariable TypeVariable Scope
Bytes_receivedintegerGLOBAL | SESSION
Bytes_sentintegerGLOBAL | SESSION
Com_admin_commandsintegerGLOBAL | SESSION
Com_alter_dbintegerGLOBAL | SESSION
Com_alter_db_upgradeintegerGLOBAL | SESSION
Com_alter_eventintegerGLOBAL | SESSION
Com_alter_functionintegerGLOBAL | SESSION
Com_alter_procedureintegerGLOBAL | SESSION
Com_alter_serverintegerGLOBAL | SESSION
Com_alter_tableintegerGLOBAL | SESSION
Com_alter_tablespaceintegerGLOBAL | SESSION
Com_analyzeintegerGLOBAL | SESSION
Com_assign_to_keycacheintegerGLOBAL | SESSION
Com_backup_tableintegerGLOBAL | SESSION
Com_beginintegerGLOBAL | SESSION
Com_binlogintegerGLOBAL | SESSION
Com_call_procedureintegerGLOBAL | SESSION
Com_change_dbintegerGLOBAL | SESSION
Com_change_masterintegerGLOBAL | SESSION
Com_checkintegerGLOBAL | SESSION
Com_checksumintegerGLOBAL | SESSION
Com_commitintegerGLOBAL | SESSION
Com_create_dbintegerGLOBAL | SESSION
Com_create_eventintegerGLOBAL | SESSION
Com_create_functionintegerGLOBAL | SESSION
Com_create_indexintegerGLOBAL | SESSION
Com_create_procedureintegerGLOBAL | SESSION
Com_create_serverintegerGLOBAL | SESSION
Com_create_tableintegerGLOBAL | SESSION
Com_create_triggerintegerGLOBAL | SESSION
Com_create_udfintegerGLOBAL | SESSION
Com_create_userintegerGLOBAL | SESSION
Com_create_viewintegerGLOBAL | SESSION
Com_dealloc_sqlintegerGLOBAL | SESSION
Com_deleteintegerGLOBAL | SESSION
Com_delete_multiintegerGLOBAL | SESSION
Com_dointegerGLOBAL | SESSION
Com_drop_dbintegerGLOBAL | SESSION
Com_drop_eventintegerGLOBAL | SESSION
Com_drop_functionintegerGLOBAL | SESSION
Com_drop_indexintegerGLOBAL | SESSION
Com_drop_procedureintegerGLOBAL | SESSION
Com_drop_serverintegerGLOBAL | SESSION
Com_drop_tableintegerGLOBAL | SESSION
Com_drop_triggerintegerGLOBAL | SESSION
Com_drop_userintegerGLOBAL | SESSION
Com_drop_viewintegerGLOBAL | SESSION
Com_empty_queryintegerGLOBAL | SESSION
Com_execute_sqlintegerGLOBAL | SESSION
Com_flushintegerGLOBAL | SESSION
Com_grantintegerGLOBAL | SESSION
Com_ha_closeintegerGLOBAL | SESSION
Com_ha_openintegerGLOBAL | SESSION
Com_ha_readintegerGLOBAL | SESSION
Com_helpintegerGLOBAL | SESSION
Com_insertintegerGLOBAL | SESSION
Com_insert_selectintegerGLOBAL | SESSION
Com_install_pluginintegerGLOBAL | SESSION
Com_killintegerGLOBAL | SESSION
Com_loadintegerGLOBAL | SESSION
Com_lock_tablesintegerGLOBAL | SESSION
Com_optimizeintegerGLOBAL | SESSION
Com_preload_keysintegerGLOBAL | SESSION
Com_prepare_sqlintegerGLOBAL | SESSION
Com_purgeintegerGLOBAL | SESSION
Com_purge_before_dateintegerGLOBAL | SESSION
Com_release_savepointintegerGLOBAL | SESSION
Com_rename_tableintegerGLOBAL | SESSION
Com_rename_userintegerGLOBAL | SESSION
Com_repairintegerGLOBAL | SESSION
Com_replaceintegerGLOBAL | SESSION
Com_replace_selectintegerGLOBAL | SESSION
Com_resetintegerGLOBAL | SESSION
Com_restore_tableintegerGLOBAL | SESSION
Com_revokeintegerGLOBAL | SESSION
Com_revoke_allintegerGLOBAL | SESSION
Com_rollbackintegerGLOBAL | SESSION
Com_rollback_to_savepointintegerGLOBAL | SESSION
Com_savepointintegerGLOBAL | SESSION
Com_selectintegerGLOBAL | SESSION
Com_set_optionintegerGLOBAL | SESSION
Com_show_authorsintegerGLOBAL | SESSION
Com_show_binlog_eventsintegerGLOBAL | SESSION
Com_show_binlogsintegerGLOBAL | SESSION
Com_show_charsetsintegerGLOBAL | SESSION
Com_show_collationsintegerGLOBAL | SESSION
Com_show_column_typesintegerGLOBAL | SESSION
Com_show_contributorsintegerGLOBAL | SESSION
Com_show_create_dbintegerGLOBAL | SESSION
Com_show_create_eventintegerGLOBAL | SESSION
Com_show_create_funcintegerGLOBAL | SESSION
Com_show_create_procintegerGLOBAL | SESSION
Com_show_create_tableintegerGLOBAL | SESSION
Com_show_create_triggerintegerGLOBAL | SESSION
Com_show_databasesintegerGLOBAL | SESSION
Com_show_engine_logsintegerGLOBAL | SESSION
Com_show_engine_mutexintegerGLOBAL | SESSION
Com_show_engine_statusintegerGLOBAL | SESSION
Com_show_errorsintegerGLOBAL | SESSION
Com_show_eventsintegerGLOBAL | SESSION
Com_show_fieldsintegerGLOBAL | SESSION
Com_show_function_codeintegerGLOBAL | SESSION
Com_show_function_statusintegerGLOBAL | SESSION
Com_show_grantsintegerGLOBAL | SESSION
Com_show_keysintegerGLOBAL | SESSION
Com_show_logsintegerGLOBAL | SESSION
Com_show_master_statusintegerGLOBAL | SESSION
Com_show_ndb_statusintegerGLOBAL | SESSION
Com_show_new_masterintegerGLOBAL | SESSION
Com_show_open_tablesintegerGLOBAL | SESSION
Com_show_pluginsintegerGLOBAL | SESSION
Com_show_privilegesintegerGLOBAL | SESSION
Com_show_procedure_codeintegerGLOBAL | SESSION
Com_show_procedure_statusintegerGLOBAL | SESSION
Com_show_processlistintegerGLOBAL | SESSION
Com_show_profileintegerGLOBAL | SESSION
Com_show_profilesintegerGLOBAL | SESSION
Com_show_slave_hostsintegerGLOBAL | SESSION
Com_show_slave_statusintegerGLOBAL | SESSION
Com_show_statusintegerGLOBAL | SESSION
Com_show_storage_enginesintegerGLOBAL | SESSION
Com_show_table_statusintegerGLOBAL | SESSION
Com_show_tablesintegerGLOBAL | SESSION
Com_show_triggersintegerGLOBAL | SESSION
Com_show_variablesintegerGLOBAL | SESSION
Com_show_warningsintegerGLOBAL | SESSION
Com_slave_startintegerGLOBAL | SESSION
Com_slave_stopintegerGLOBAL | SESSION
Com_stmt_closeintegerGLOBAL | SESSION
Com_stmt_executeintegerGLOBAL | SESSION
Com_stmt_fetchintegerGLOBAL | SESSION
Com_stmt_prepareintegerGLOBAL | SESSION
Com_stmt_reprepareintegerGLOBAL | SESSION
Com_stmt_resetintegerGLOBAL | SESSION
Com_stmt_send_long_dataintegerGLOBAL | SESSION
Com_truncateintegerGLOBAL | SESSION
Com_uninstall_pluginintegerGLOBAL | SESSION
Com_unlock_tablesintegerGLOBAL | SESSION
Com_updateintegerGLOBAL | SESSION
Com_update_multiintegerGLOBAL | SESSION
Com_xa_commitintegerGLOBAL | SESSION
Com_xa_endintegerGLOBAL | SESSION
Com_xa_prepareintegerGLOBAL | SESSION
Com_xa_recoverintegerGLOBAL | SESSION
Com_xa_rollbackintegerGLOBAL | SESSION
Com_xa_startintegerGLOBAL | SESSION
Created_tmp_disk_tablesintegerGLOBAL | SESSION
Created_tmp_tablesintegerGLOBAL | SESSION
Handler_commitintegerGLOBAL | SESSION
Handler_deleteintegerGLOBAL | SESSION
Handler_discoverintegerGLOBAL | SESSION
Handler_prepareintegerGLOBAL | SESSION
Handler_read_firstintegerGLOBAL | SESSION
Handler_read_keyintegerGLOBAL | SESSION
Handler_read_nextintegerGLOBAL | SESSION
Handler_read_previntegerGLOBAL | SESSION
Handler_read_rndintegerGLOBAL | SESSION
Handler_read_rnd_nextintegerGLOBAL | SESSION
Handler_rollbackintegerGLOBAL | SESSION
Handler_savepointintegerGLOBAL | SESSION
Handler_savepoint_rollbackintegerGLOBAL | SESSION
Handler_updateintegerGLOBAL | SESSION
Handler_writeintegerGLOBAL | SESSION
Ndb_cluster_node_idintegerGLOBAL | SESSION
Ndb_config_from_hostintegerGLOBAL | SESSION
Ndb_config_from_portintegerGLOBAL | SESSION
Open_tablesintegerGLOBAL | SESSION
Opened_table_definitionsintegerGLOBAL | SESSION
Opened_tablesintegerGLOBAL | SESSION
QueriesintegerGLOBAL | SESSION
QuestionsintegerGLOBAL | SESSION
Select_full_joinintegerGLOBAL | SESSION
Select_full_range_joinintegerGLOBAL | SESSION
Select_rangeintegerGLOBAL | SESSION
Select_range_checkintegerGLOBAL | SESSION
Select_scanintegerGLOBAL | SESSION
Slave_received_heartbeats GLOBAL
Slow_launch_threadsintegerGLOBAL | SESSION
Slow_queriesintegerGLOBAL | SESSION
Sort_merge_passesintegerGLOBAL | SESSION
Sort_rangeintegerGLOBAL | SESSION
Sort_rowsintegerGLOBAL | SESSION
Sort_scanintegerGLOBAL | SESSION
Ssl_cipherstringGLOBAL | SESSION
Ssl_cipher_liststringGLOBAL | SESSION
Ssl_default_timeoutintegerGLOBAL | SESSION
Ssl_sessions_reusedintegerGLOBAL | SESSION
Ssl_verify_depthintegerGLOBAL | SESSION
Ssl_verify_modeintegerGLOBAL | SESSION
Ssl_versionstringGLOBAL | SESSION

The status variables have the following meanings. For meanings of status variables specific to MySQL Cluster, see Section, “MySQL Cluster Status Variables”.

  • Aborted_clients

    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”.

  • Aborted_connects

    The number of failed attempts to connect to the MySQL server. See Section B.5.2.11, “Communication Errors and Aborted Connections”.

  • Binlog_cache_disk_use

    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.

  • Binlog_cache_use

    The number of transactions that used the temporary binary log cache.

  • Bytes_received

    The number of bytes received from all clients.

  • Bytes_sent

    The number of bytes sent to all clients.

  • Com_xxx

    The Com_xxx statement counter variables indicate the number of times each xxx statement has been executed. There is one status variable for each type of statement. For example, Com_delete and Com_update count DELETE and UPDATE statements, respectively. Com_delete_multi and Com_update_multi are similar but apply to DELETE and UPDATE statements that use multiple-table syntax.

    If a query result is returned from query cache, the server increments the Qcache_hits status variable, not Com_select. See Section, “Query Cache Status and Maintenance”.

    The discussion at the beginning of this section indicates how to relate these statement-counting status variables to other such variables.

    All of the Com_stmt_xxx 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.

    The Com_stmt_xxx status variables are as follows:

    • 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_xxx 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, 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 indicates the number of times statements were automatically reprepared by the server after metadata changes to tables or views referred to by the statement. This variable was added in MySQL 5.1.25. A reprepare operation increments Com_stmt_reprepare, and also Com_stmt_prepare.

  • Compression

    Whether the client connection uses compression in the client/server protocol. Added in MySQL 5.1.2.

  • Connections

    The number of connection attempts (successful or not) to the MySQL server.

  • Created_tmp_disk_tables

    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 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 8.4.4, “Internal Temporary Table Use in MySQL”.

  • Created_tmp_files

    How many temporary files mysqld has created.

  • Created_tmp_tables

    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 8.4.4, “Internal Temporary Table Use in MySQL”.

    Each invocation of the SHOW STATUS statement uses an internal temporary table and increments the global Created_tmp_tables value.

  • Delayed_errors

    The number of rows written with INSERT DELAYED for which some error occurred (probably duplicate key).

  • Delayed_insert_threads

    The number of INSERT DELAYED handler threads in use.

  • Delayed_writes

    The number of INSERT DELAYED rows written.

  • Flush_commands

    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 a COM_REFRESH packet. This is in contrast to Com_flush, which indicates how many FLUSH statements have been executed, whether FLUSH TABLES, FLUSH LOGS, and so forth.

  • Handler_commit

    The number of internal COMMIT statements.

  • Handler_delete

    The number of times that rows have been deleted from tables.

  • Handler_prepare

    A counter for the prepare phase of two-phase commit operations.

  • Handler_read_first

    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.

  • Handler_read_key

    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.

  • Handler_read_next

    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.

  • Handler_read_prev

    The number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY ... DESC.

  • Handler_read_rnd

    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.

  • Handler_read_rnd_next

    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.

  • Handler_rollback

    The number of requests for a storage engine to perform a rollback operation.

  • Handler_savepoint

    The number of requests for a storage engine to place a savepoint.

  • Handler_savepoint_rollback

    The number of requests for a storage engine to roll back to a savepoint.

  • 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.

  • Innodb_buffer_pool_pages_data

    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.

  • Innodb_buffer_pool_pages_free

    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 as of MySQL 5.1.28, it is available only when the UNIV_DEBUG system is defined at server build time.

  • Innodb_buffer_pool_pages_misc

    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_totalInnodb_buffer_pool_pages_freeInnodb_buffer_pool_pages_data.

  • Innodb_buffer_pool_pages_total

    The total size of the buffer pool, in pages.

  • Innodb_buffer_pool_read_ahead

    (InnoDB Plugin only) The number of pages read into the InnoDB buffer pool by the read-ahead background thread.

    This variable was added in MySQL 5.1.41.

  • Innodb_buffer_pool_read_ahead_evicted

    (InnoDB Plugin only) 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.

    This variable was added in MySQL 5.1.41.

  • 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.

    For InnoDB Plugin, this variable was removed in MySQL 5.1.41.

  • Innodb_buffer_pool_read_ahead_seq

    The number of sequential read-aheads initiated by InnoDB. This happens when InnoDB does a sequential full table scan.

    For InnoDB Plugin, this variable was removed in MySQL 5.1.41.

  • Innodb_buffer_pool_read_requests

    The number of logical read requests.

  • Innodb_buffer_pool_reads

    The number of logical reads that InnoDB could not satisfy from the buffer pool, and had to read directly from the disk.

  • Innodb_buffer_pool_wait_free

    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.

  • Innodb_data_fsyncs

    The number of fsync() operations so far.

  • Innodb_data_pending_fsyncs

    The current number of pending fsync() operations.

  • Innodb_data_pending_reads

    The current number of pending reads.

  • Innodb_data_pending_writes

    The current number of pending writes.

  • Innodb_data_read

    The amount of data read since the server was started.

  • Innodb_data_reads

    The total number of data reads.

  • Innodb_data_writes

    The total number of data writes.

  • Innodb_data_written

    The amount of data written so far, in bytes.

  • Innodb_dblwr_pages_written

    The number of pages that have been written for doublewrite operations. See Section, “InnoDB Disk I/O”.

  • Innodb_dblwr_writes

    The number of doublewrite operations that have been performed. See Section, “InnoDB Disk I/O”.

  • Innodb_have_atomic_builtins

    (InnoDB Plugin only) Indicates whether the server was built with atomic instructions. This variable was added in MySQL 5.1.38.

  • Innodb_log_waits

    The number of times that the log buffer was too small and a wait was required for it to be flushed before continuing.

  • Innodb_log_write_requests

    The number of log write requests.

  • Innodb_log_writes

    The number of physical writes to the log file.

  • Innodb_os_log_fsyncs

    The number of fsync() writes done to the log file.

  • Innodb_os_log_pending_fsyncs

    The number of pending log file fsync() operations.

  • Innodb_os_log_pending_writes

    The number of pending log file writes.

  • Innodb_os_log_written

    The number of bytes written to the log file.

  • Innodb_page_size

    The compiled-in InnoDB page size (default 16KB). Many values are counted in pages; the page size enables them to be easily converted to bytes.

  • Innodb_pages_created

    The number of pages created.

  • Innodb_pages_read

    The number of pages read.

  • Innodb_pages_written

    The number of pages written.

  • Innodb_row_lock_current_waits

    The number of row locks currently being waited for.

  • Innodb_row_lock_time

    The total time spent in acquiring row locks, in milliseconds.

  • Innodb_row_lock_time_avg

    The average time to acquire a row lock, in milliseconds.

  • Innodb_row_lock_time_max

    The maximum time to acquire a row lock, in milliseconds.

  • Innodb_row_lock_waits

    The number of times a row lock had to be waited for.

  • Innodb_rows_deleted

    The number of rows deleted from InnoDB tables.

  • Innodb_rows_inserted

    The number of rows inserted into InnoDB tables.

  • Innodb_rows_read

    The number of rows read from InnoDB tables.

  • Innodb_rows_updated

    The number of rows updated in InnoDB tables.

  • Key_blocks_not_flushed

    The number of key blocks in the key cache that have changed but have not yet been flushed to disk.

  • Key_blocks_unused

    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”.

  • Key_blocks_used

    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.

  • Key_read_requests

    The number of requests to read a key block from the cache.

  • Key_reads

    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.

  • Key_write_requests

    The number of requests to write a key block to the cache.

  • Key_writes

    The number of physical writes of a key block to disk.

  • Last_query_cost

    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.

  • Max_used_connections

    The maximum number of connections that have been in use simultaneously since the server started.

  • Not_flushed_delayed_rows

    The number of rows waiting to be written in INSERT DELAYED queues.

  • Open_files

    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.

  • Open_streams

    The number of streams that are open (used mainly for logging).

  • Open_table_definitions

    The number of cached .frm files. This variable was added in MySQL 5.1.3.

  • Open_tables

    The number of tables that are open.

  • Opened_files

    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. This variable was added in MySQL 5.1.21.

  • Opened_table_definitions

    The number of .frm files that have been cached. This variable was added in MySQL 5.1.24.

  • Opened_tables

    The number of tables that have been opened. If Opened_tables is big, your table_open_cache value is probably too small.

  • Prepared_stmt_count

    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.1.14.

  • Qcache_free_blocks

    The number of free memory blocks in the query cache.

  • Qcache_free_memory

    The amount of free memory for the query cache.

  • Qcache_hits

    The number of query cache hits.

    The discussion at the beginning of this section indicates how to relate this statement-counting status variable to other such variables.

  • Qcache_inserts

    The number of queries added to the query cache.

  • Qcache_lowmem_prunes

    The number of queries that were deleted from the query cache because of low memory.

  • Qcache_not_cached

    The number of noncached queries (not cacheable, or not cached due to the query_cache_type setting).

  • Qcache_queries_in_cache

    The number of queries registered in the query cache.

  • Qcache_total_blocks

    The total number of blocks in the query cache.

  • Queries

    The number of statements executed by the server. This variable includes statements executed within stored programs, unlike the Questions variable. It does not count COM_PING or COM_STATISTICS commands. This variable was added in MySQL 5.1.31.

    The discussion at the beginning of this section indicates how to relate this statement-counting status variable to other such variables.

  • Questions

    The number of statements executed by the server. As of MySQL 5.1.31, 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 count COM_PING, COM_STATISTICS, COM_STMT_PREPARE, COM_STMT_CLOSE, or COM_STMT_RESET commands.

    The discussion at the beginning of this section indicates how to relate this statement-counting status variable to other such variables.

  • Rpl_status

    The status of fail-safe replication (not implemented). This variable is unused and is removed in MySQL 5.6.

  • Select_full_join

    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.

  • Select_full_range_join

    The number of joins that used a range search on a reference table.

  • Select_range

    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.

  • Select_range_check

    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.

  • Select_scan

    The number of joins that did a full scan of the first table.

  • Slave_open_temp_tables

    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, “Replication and Temporary Tables”.

  • Slave_retried_transactions

    The total number of times since startup that the replication slave SQL thread has retried transactions.

  • Slave_running

    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.

  • Slow_launch_threads

    The number of threads that have taken more than slow_launch_time seconds to create.

  • Slow_queries

    The number of queries that have taken more than long_query_time seconds. This counter increments regardless of whether the slow query log is enabled. For information about that log, see Section 5.4.5, “The Slow Query Log”.

  • Sort_merge_passes

    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.

  • Sort_range

    The number of sorts that were done using ranges.

  • Sort_rows

    The number of sorted rows.

  • Sort_scan

    The number of sorts that were done by scanning the table.

  • Ssl_accept_renegotiates

    The number of negotiates needed to establish the connection.

  • Ssl_accepts

    The number of accepted SSL connections.

  • Ssl_callback_cache_hits

    The number of callback cache hits.

  • Ssl_cipher

    The current encryption cipher (empty for unencrypted connections).

  • Ssl_cipher_list

    The list of possible SSL ciphers (empty for non-SSL connections).

  • Ssl_client_connects

    The number of SSL connection attempts to an SSL-enabled master.

  • Ssl_connect_renegotiates

    The number of negotiates needed to establish the connection to an SSL-enabled master.

  • Ssl_ctx_verify_depth

    The SSL context verification depth (how many certificates in the chain are tested).

  • Ssl_ctx_verify_mode

    The SSL context verification mode.

  • Ssl_default_timeout

    The default SSL timeout.

  • Ssl_finished_accepts

    The number of successful SSL connections to the server.

  • Ssl_finished_connects

    The number of successful slave connections to an SSL-enabled master.

  • Ssl_session_cache_hits

    The number of SSL session cache hits.

  • Ssl_session_cache_misses

    The number of SSL session cache misses.

  • Ssl_session_cache_mode

    The SSL session cache mode.

  • Ssl_session_cache_overflows

    The number of SSL session cache overflows.

  • Ssl_session_cache_size

    The SSL session cache size.

  • Ssl_session_cache_timeouts

    The number of SSL session cache timeouts.

  • Ssl_sessions_reused

    How many SSL connections were reused from the cache.

  • Ssl_used_session_cache_entries

    How many SSL session cache entries were used.

  • Ssl_verify_depth

    The verification depth for replication SSL connections.

  • Ssl_verify_mode

    The verification mode for replication SSL connections.

  • Ssl_version

    The SSL protocol version of the connection; for example, TLSv1. If the connection is not encrypted, the value is empty.

  • Table_locks_immediate

    The number of times that a request for a table lock could be granted immediately.

  • Table_locks_waited

    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.

  • Tc_log_max_pages_used

    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. 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 that are capable of two-phase commit and that support XA transactions is greater than one. (InnoDB is the only applicable engine.)

  • Tc_log_page_size

    The page size used for the memory-mapped implementation of the XA recovery log. The default value is determined using getpagesize(). This variable is unused for the same reasons as described for Tc_log_max_pages_used.

  • Tc_log_page_waits

    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.)

  • Threads_cached

    The number of threads in the thread cache.

  • Threads_connected

    The number of currently open connections.

  • Threads_created

    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.

  • Threads_running

    The number of threads that are not sleeping.

  • Uptime

    The number of seconds that the server has been up.

  • Uptime_since_flush_status

    The number of seconds since the most recent FLUSH STATUS statement. This variable was added in 5.1.24.

User Comments
  Posted by Demetrios Stavrinos on July 22, 2004
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

  Posted by Heikki Hannikainen on April 28, 2006
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. (
  Posted by sheila yao on April 16, 2007
In version 4.0.17, the explanation to Handler_ is different:
The number of times a row was deleted from a table.
The number of requests to update a row in a table.
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.


  Posted by Roel Van de Paar on September 21, 2009
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:

Query OK, 0 rows affected (0.00 sec)

[...] 224 rows in set (0.01 sec)
[...] 224 rows in set (0.01 sec)

mysql> SHOW SESSION STATUS LIKE 'Handler_write';
| Variable_name | Value |
| Handler_write | 448 |
1 row in set (0.00 sec)

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';
| Variable_name | Value |
| Com_show_status | 8 |
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.
Sign Up Login You must be logged in to post a comment.