MySQL性能參數彙總

MySQL性能參數彙總

在MySQL中可使用SHOW STATUS語句來查看MySQL數據庫的性能參數,咱們能夠根據這些性能參數來了解MySQL數據庫的狀態,並制定合理的優化策略。html

執行show status;能夠查看全部的性能參數,執行show status like '參數名稱';能夠查看指定參數名稱的性能參數,通常某一類參數都有相同的前綴。mysql

翻譯整理

狀態名算法

做用域sql

詳細解釋數據庫

Aborted_clients緩存

Global安全

因爲客戶端沒有正確關閉鏈接致使客戶端終止而中斷的鏈接數bash

Aborted_connects服務器

Globalsession

試圖鏈接到MySQL服務器而失敗的鏈接數

Binlog_cache_disk_use

Global

使用臨時二進制日誌緩存但超過binlog_cache_size值並使用臨時文件來保存事務中的語句的事務數量

Binlog_cache_use

Global

使用臨時二進制日誌緩存的事務數量

Bytes_received

Both

從全部客戶端接收到的字節數。

Bytes_sent

Both

發送給全部客戶端的字節數。

com*

 

各類數據庫操做的數量

Compression

Session

客戶端與服務器之間只否啓用壓縮協議

Connections

Global

試圖鏈接到(不論是否成功)MySQL服務器的鏈接數

Created_tmp_disk_tables

Both

服務器執行語句時在硬盤上自動建立的臨時表的數量

Created_tmp_files

Global

mysqld已經建立的臨時文件的數量

Created_tmp_tables

Both

服務器執行語句時自動建立的內存中的臨時表的數量。若是Created_tmp_disk_tables較大,你可能要增長tmp_table_size值使臨時 表基於內存而不基於硬盤

Delayed_errors

Global

用INSERT DELAYED寫的出現錯誤的行數(可能爲duplicate key)。

Delayed_insert_threads

Global

使用的INSERT DELAYED處理器線程數。

Delayed_writes

Global

寫入的INSERT DELAYED行數

Flush_commands

Global

執行的FLUSH語句數。

Handler_commit

Both

內部提交語句數

Handler_delete

Both

行從表中刪除的次數。

Handler_discover

Both

MySQL服務器能夠問NDB CLUSTER存儲引擎是否知道某一名字的表。這被稱做發現。Handler_discover說明經過該方法發現的次數。

Handler_prepare

Both

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

Handler_read_first

Both

索引中第一條被讀的次數。若是較高,它建議服務器正執行大量全索引掃描;例如,SELECT col1 FROM foo,假定col1有索引。

Handler_read_key

Both

根據鍵讀一行的請求數。若是較高,說明查詢和表的索引正確。

Handler_read_next

Both

按照鍵順序讀下一行的請求數。若是你用範圍約束或若是執行索引掃描來查詢索引列,該值增長。

Handler_read_prev

Both

按照鍵順序讀前一行的請求數。該讀方法主要用於優化ORDER BY ... DESC。

Handler_read_rnd

Both

根據固定位置讀一行的請求數。若是你正執行大量查詢並須要對結果進行排序該值較高。你可能使用了大量須要MySQL掃描整個表的查詢或你的鏈接沒有正確使用鍵。

Handler_read_rnd_next

Both

在數據文件中讀下一行的請求數。若是你正進行大量的表掃描,該值較高。一般說明你的表索引不正確或寫入的查詢沒有利用索引。

Handler_rollback

Both

內部ROLLBACK語句的數量。

Handler_savepoint

Both

在一個存儲引擎放置一個保存點的請求數量。

Handler_savepoint_rollback

Both

在一個存儲引擎的要求回滾到一個保存點數目。

Handler_update

Both

在表內更新一行的請求數。

Handler_write

Both

在表內插入一行的請求數。

Innodb_buffer_pool_pages_data

Global

包含數據的頁數(髒或乾淨)。

Innodb_buffer_pool_pages_dirty

Global

當前的髒頁數。

Innodb_buffer_pool_pages_flushed

Global

要求清空的緩衝池頁數

Innodb_buffer_pool_pages_free

Global

空頁數。

Innodb_buffer_pool_pages_latched

Global

在InnoDB緩衝池中鎖定的頁數。這是當前正讀或寫或因爲其它緣由不能清空或刪除的頁數。

Innodb_buffer_pool_pages_misc

Global

忙的頁數,由於它們已經被分配優先用做管理,例如行鎖定或適用的哈希索引。該值還能夠計算爲Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。

Innodb_buffer_pool_pages_total

Global

緩衝池總大小(頁數)。

Innodb_buffer_pool_read_ahead_rnd

Global

InnoDB初始化的「隨機」read-aheads數。當查詢以隨機順序掃描表的一大部分時發生。

Innodb_buffer_pool_read_ahead_seq

Global

InnoDB初始化的順序read-aheads數。當InnoDB執行順序全表掃描時發生。

Innodb_buffer_pool_read_requests

Global

InnoDB已經完成的邏輯讀請求數。

Innodb_buffer_pool_reads

Global

不能知足InnoDB必須單頁讀取的緩衝池中的邏輯讀數量。

Innodb_buffer_pool_wait_free

Global

通常狀況,經過後臺向InnoDB緩衝池寫。可是,若是須要讀或建立頁,而且沒有乾淨的頁可用,則它還須要先等待頁面清空。該計數器對等待實例進行記數。若是已經適當設置緩衝池大小,該值應小。

Innodb_buffer_pool_write_requests

Global

向InnoDB緩衝池的寫數量。

Innodb_data_fsyncs

Global

fsync()操做數。

Innodb_data_pending_fsyncs

Global

當前掛起的fsync()操做數。

Innodb_data_pending_reads

Global

當前掛起的讀數。

Innodb_data_pending_writes

Global

當前掛起的寫數。

Innodb_data_read

Global

至此已經讀取的數據數量(字節)。

Innodb_data_reads

Global

數據讀總數量。

Innodb_data_writes

Global

數據寫總數量。

Innodb_data_written

Global

至此已經寫入的數據量(字節)。

Innodb_dblwr_pages_written

Global

已經執行的雙寫操做數量

Innodb_dblwr_writes

Global

雙寫操做已經寫好的頁數

Innodb_log_waits

Global

咱們必須等待的時間,由於日誌緩衝區過小,咱們在繼續前必須先等待對它清空

Innodb_log_write_requests

Global

日誌寫請求數。

Innodb_log_writes

Global

向日志文件的物理寫數量。

Innodb_os_log_fsyncs

Global

向日志文件完成的fsync()寫數量。

Innodb_os_log_pending_fsyncs

Global

掛起的日誌文件fsync()操做數量。

Innodb_os_log_pending_writes

Global

掛起的日誌文件寫操做

Innodb_os_log_written

Global

寫入日誌文件的字節數。

Innodb_page_size

Global

編譯的InnoDB頁大小(默認16KB)。許多值用頁來記數;頁的大小很容易轉換爲字節。

Innodb_pages_created

Global

建立的頁數。

Innodb_pages_read

Global

讀取的頁數。

Innodb_pages_written

Global

寫入的頁數。

Innodb_row_lock_current_waits

Global

當前等待的待鎖定的行數。

Innodb_row_lock_time

Global

行鎖定花費的總時間,單位毫秒。

Innodb_row_lock_time_avg

Global

行鎖定的平均時間,單位毫秒。

Innodb_row_lock_time_max

Global

行鎖定的最長時間,單位毫秒。

Innodb_row_lock_waits

Global

一行鎖定必須等待的時間數。

Innodb_rows_deleted

Global

從InnoDB表刪除的行數。

Innodb_rows_inserted

Global

插入到InnoDB表的行數。

Innodb_rows_read

Global

從InnoDB表讀取的行數。

Innodb_rows_updated

Global

InnoDB表內更新的行數。

Key_blocks_not_flushed

Global

鍵緩存內已經更改但尚未清空到硬盤上的鍵的數據塊數量。

Key_blocks_unused

Global

鍵緩存內未使用的塊數量。你可使用該值來肯定使用了多少鍵緩存

Key_blocks_used

Global

鍵緩存內使用的塊數量。該值爲高水平線標記,說明已經同時最多使用了多少塊。

Key_read_requests

Global

從緩存讀鍵的數據塊的請求數。

Key_reads

Global

從硬盤讀取鍵的數據塊的次數。若是Key_reads較大,則Key_buffer_size值可能過小。能夠用Key_reads/Key_read_requests計算緩存損失率。

Key_write_requests

Global

將鍵的數據塊寫入緩存的請求數。

Key_writes

Global

向硬盤寫入將鍵的數據塊的物理寫操做的次數。

Last_query_cost

Session

用查詢優化器計算的最後編譯的查詢的總成本。用於對比同一查詢的不一樣查詢方案的成本。默認值0表示尚未編譯查詢。 默認值是0。Last_query_cost具備會話範圍。

Max_used_connections

Global

服務器啓動後已經同時使用的鏈接的最大數量。

ndb*

 

ndb集羣相關

Not_flushed_delayed_rows

Global

等待寫入INSERT DELAY隊列的行數。

 

Open_files

Global

打開的文件的數目。

Open_streams

Global

打開的流的數量(主要用於記錄)。

Open_table_definitions

Global

緩存的.frm文件數量

Open_tables

Both

當前打開的表的數量。

Opened_files

Global

文件打開的數量。不包括諸如套接字或管道其餘類型的文件。 也不包括存儲引擎用來作本身的內部功能的文件。

Opened_table_definitions

Both

已經緩存的.frm文件數量

Opened_tables

Both

已經打開的表的數量。若是Opened_tables較大,table_cache 值可能過小。

Prepared_stmt_count

Global

當前的預處理語句的數量。 (最大數爲系統變量: max_prepared_stmt_count) 

Qcache_free_blocks

Global

查詢緩存內自由內存塊的數量。

Qcache_free_memory

Global

用於查詢緩存的自由內存的數量。

Qcache_hits

Global

查詢緩存被訪問的次數。

Qcache_inserts

Global

加入到緩存的查詢數量。

Qcache_lowmem_prunes

Global

因爲內存較少從緩存刪除的查詢數量。

Qcache_not_cached

Global

非緩存查詢數(不可緩存,或因爲query_cache_type設定值未緩存)。

Qcache_queries_in_cache

Global

登記到緩存內的查詢的數量。

Qcache_total_blocks

Global

查詢緩存內的總塊數。

Queries

Both

服務器執行的請求個數,包含存儲過程當中的請求。

Questions

Both

已經發送給服務器的查詢的個數。

Rpl_status

Global

失敗安全複製狀態(還未使用)。

Select_full_join

Both

沒有使用索引的聯接的數量。若是該值不爲0,你應仔細檢查表的索引

Select_full_range_join

Both

在引用的表中使用範圍搜索的聯接的數量。

Select_range

Both

在第一個表中使用範圍的聯接的數量。通常狀況不是關鍵問題,即便該值至關大。

Select_range_check

Both

在每一行數據後對鍵值進行檢查的不帶鍵值的聯接的數量。若是不爲0,你應仔細檢查表的索引。

Select_scan

Both

對第一個表進行徹底掃描的聯接的數量。

Slave_heartbeat_period

Global

複製的心跳間隔

Slave_open_temp_tables

Global

從服務器打開的臨時表數量

Slave_received_heartbeats

Global

從服務器心跳數

Slave_retried_transactions

Global

本次啓動以來從服務器複製線程重試次數

Slave_running

Global

若是該服務器是鏈接到主服務器的從服務器,則該值爲ON。

Slow_launch_threads

Both

建立時間超過slow_launch_time秒的線程數。

Slow_queries

Both

查詢時間超過long_query_time秒的查詢的個數。

Sort_merge_passes

Both

排序算法已經執行的合併的數量。若是這個變量值較大,應考慮增長sort_buffer_size系統變量的值。

Sort_range

Both

在範圍內執行的排序的數量。

Sort_rows

Both

已經排序的行數。

Sort_scan

Both

經過掃描表完成的排序的數量。

ssl*

 

ssl鏈接相關

Table_locks_immediate

Global

當即得到的表的鎖的次數。

Table_locks_waited

Global

不能當即得到的表的鎖的次數。若是該值較高,而且有性能問題,你應首先優化查詢,而後拆分表或使用複製。

Threads_cached

Global

線程緩存內的線程的數量。

Threads_connected

Global

當前打開的鏈接的數量。

Threads_created

Global

建立用來處理鏈接的線程數。若是Threads_created較大,你可能要增長thread_cache_size值。緩存訪問率的計算方法Threads_created/Connections。

Threads_running

Global

激活的(非睡眠狀態)線程數。

Uptime

Global

服務器已經運行的時間(以秒爲單位)。

Uptime_since_flush_status

Global

最近一次使用FLUSH STATUS 的時間(以秒爲單位)。

官方文檔

MySQL 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 13.7.6.35, 「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    |
+-----------------------------------+------------+
複製代碼

Many status variables are reset to 0 by the FLUSH STATUS statement.

This section provides a description of each status variable. For a status variable summary, see Section 5.1.6, 「Server Status Variable Reference」.

The status variables have the following meanings.

Aborted_clients

The number of connections that were aborted because the client died without closing the connection properly. See Section B.4.2.10, 「Communication Errors and Aborted Connections」.

Aborted_connects

The number of failed attempts to connect to the MySQL server. See Section B.4.2.10, 「Communication Errors and Aborted Connections」.

For additional connection-related information, check the Connection_errors_xxx status variables and the host_cache table.

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.

The number of nontransactional statements that caused the binary log transaction cache to be written to disk is tracked separately in the Binlog_stmt_cache_disk_use status variable.

Acl_cache_items_count

The number of cached privilege objects. Each object is the privilege combination of a user and its active roles.

Binlog_cache_use

The number of transactions that used the binary log cache.

Binlog_stmt_cache_disk_use

The number of nontransaction statements that used the binary log statement cache but that exceeded the value of binlog_stmt_cache_size and used a temporary file to store those statements.

Binlog_stmt_cache_use

The number of nontransactional statements that used the binary log statement cache.

Bytes_received

The number of bytes received from all clients.

Bytes_sent

The number of bytes sent to all clients.

Caching_sha2_password_rsa_public_key

The public key used by the caching_sha2_password authentication plugin for RSA key pair-based password exchange. The value is nonempty only if the server successfully initializes the private and public keys in the files named by the caching_sha2_password_private_key_path and caching_sha2_password_public_key_path system variables. The value of Caching_sha2_password_rsa_public_key comes from the latter file.

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.

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, for example, after metadata changes to tables or views referred to by the statement. A reprepare operation increments Com_stmt_reprepare, and also Com_stmt_prepare.

Com_explain_other indicates the number of EXPLAIN FOR CONNECTION statements executed. See Section 8.8.4, 「Obtaining Execution Plan Information for a Named Connection」.

Com_change_repl_filter indicates the number of CHANGE REPLICATION FILTER statements executed.

Compression

Whether the client connection uses compression in the client/server protocol.

As of MySQL 8.0.18, this status variable is deprecated. It will be removed in a future MySQL version. See Legacy Connection Compression Configuration.

Compression_algorithm

The name of the compression algorithm in use for the current connection to the server. The value can be any algorithm permitted in the value of the protocol_compression_algorithms system variable. For example, the value is uncompressed if the connection does not use compression, or zlib if the connection uses the zlib algorithm.

For more information, see Section 4.2.6, 「Connection Compression Control」.

This variable was added in MySQL 8.0.18.

Compression_level

The compression level in use for the current connection to the server. The value is 6 for zlib connections (the default zlib algorithm compression level), 1 to 22 for zstd connections, and 0 for uncompressed connections.

For more information, see Section 4.2.6, 「Connection Compression Control」.

This variable was added in MySQL 8.0.18.

Connection_errors_xxx

These variables provide information about errors that occur during the client connection process. They are global only and represent error counts aggregated across connections from all hosts. These variables track errors not accounted for by the host cache (see Section 8.12.4.2, 「DNS Lookup Optimization and the Host Cache」), such as errors that are not associated with TCP connections, occur very early in the connection process (even before an IP address is known), or are not specific to any particular IP address (such as out-of-memory conditions).

Connection_errors_accept

The number of errors that occurred during calls to accept() on the listening port.

Connection_errors_internal

The number of connections refused due to internal errors in the server, such as failure to start a new thread or an out-of-memory condition.

Connection_errors_max_connections

The number of connections refused because the server max_connections limit was reached.

Connection_errors_peer_address

The number of errors that occurred while searching for connecting client IP addresses.

Connection_errors_select

The number of errors that occurred during calls to select() or poll() on the listening port. (Failure of this operation does not necessarily means a client connection was rejected.)

Connection_errors_tcpwrap

The number of connections refused by the libwrap library.

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.

Current_tls_ca

The active ssl_ca value in the SSL context that the server uses for new connections. This context value may differ from the current ssl_ca system variable value if the system variable has been changed but ALTER INSTANCE RELOAD TLS has not subsequently been executed to reconfigure the SSL context from the context-related system variable values and update the corresponding status variables. (This potential difference in values applies to each corresponding pair of context-related system and status variables. See Server-Side Runtime Configuration for Encrypted Connections.)

This variable was added in MySQL 8.0.16.

Current_tls_capath

The active ssl_capath value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_cert

The active ssl_cert value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_cipher

The active ssl_cipher value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_ciphersuites

The active tls_ciphersuites value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_crl

The active ssl_crl value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_crlpath

The active ssl_crlpath value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_key

The active ssl_key value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Current_tls_version

The active tls_version value in the SSL context that the server uses for new connections. For notes about the relationship between this status variable and its corresponding system variable, see the description of Current_tls_ca.

This variable was added in MySQL 8.0.16.

Delayed_errors

This status variable is deprecated (because DELAYED inserts are not supported), and will be removed in a future release.

Delayed_insert_threads

This status variable is deprecated (because DELAYED inserts are not supported), and will be removed in a future release.

Delayed_writes

This status variable is deprecated (because DELAYED inserts are not supported), and will be removed in a future release.

dragnet.Status

The result of the most recent assignment to the dragnet.log_error_filter_rules system variable, empty if no such assignment has occurred.

This variable was added in MySQL 8.0.12.

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.

group_replication_primary_member

Shows the primary member's UUID when the group is operating in single-primary mode. If the group is operating in multi-primary mode, shows an empty string.

The group_replication_primary_member status variable has been deprecated and is scheduled to be removed in a future version.

Handler_commit

The number of internal COMMIT statements.

Handler_delete

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

Handler_external_lock

The server increments this variable for each call to its external_lock() function, which generally occurs at the beginning and end of access to a table instance. There might be differences among storage engines. This variable can be used, for example, to discover for a statement that accesses a partitioned table how many partitions were pruned before locking occurred: Check how much the counter increased for the statement, subtract 2 (2 calls for the table itself), then divide by 2 to get the number of partitions locked.

Handler_mrr_init

The number of times the server uses a storage engine's own Multi-Range Read implementation for table access.

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_last

The number of requests to read the last key in an index. With ORDER BY, the server will issue a first-key request followed by several next-key requests, whereas with ORDER BY DESC, the server will issue a last-key request followed by several previous-key requests.

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_available_undo_logs

Innodb_available_undo_logs was removed in MySQL 8.0.2. The number of available rollback segments per tablespace may be retrieved using SHOW VARIABLES LIKE 'innodb_rollback_segments';

Innodb_buffer_pool_dump_status

The progress of an operation to record the pages held in the InnoDB buffer pool, triggered by the setting of innodb_buffer_pool_dump_at_shutdown or innodb_buffer_pool_dump_now.

For related information and examples, see Section 15.8.3.7, 「Saving and Restoring the Buffer Pool State」.

Innodb_buffer_pool_load_status

The progress of an operation to warm up the InnoDB buffer pool by reading in a set of pages corresponding to an earlier point in time, triggered by the setting of innodb_buffer_pool_load_at_startup or innodb_buffer_pool_load_now. If the operation introduces too much overhead, you can cancel it by setting innodb_buffer_pool_load_abort.

For related information and examples, see Section 15.8.3.7, 「Saving and Restoring the Buffer Pool State」.

Innodb_buffer_pool_bytes_data

The total number of bytes in the InnoDB buffer pool containing data. The number includes both dirty and clean pages. For more accurate memory usage calculations than with Innodb_buffer_pool_pages_data, when compressed tables cause the buffer pool to hold pages of different sizes.

Innodb_buffer_pool_pages_data

The number of pages in the InnoDB buffer pool containing data. The number includes both dirty and clean pages. When using compressed tables, the reported Innodb_buffer_pool_pages_data value may be larger than Innodb_buffer_pool_pages_total (Bug #59550).

Innodb_buffer_pool_bytes_dirty

The total current number of bytes held in dirty pages in the InnoDB buffer pool. For more accurate memory usage calculations than with Innodb_buffer_pool_pages_dirty, when compressed tables cause the buffer pool to hold pages of different sizes.

Innodb_buffer_pool_pages_dirty

The current number of dirty pages in the InnoDB buffer pool.

Innodb_buffer_pool_pages_flushed

The number of requests to flush pages from the InnoDB buffer pool.

Innodb_buffer_pool_pages_free

The number of free pages in the InnoDB buffer pool.

Innodb_buffer_pool_pages_latched

The number of latched pages in the 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.

Innodb_buffer_pool_pages_misc

The number of pages in the InnoDB buffer pool 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. When using compressed tables, Innodb_buffer_pool_pages_misc may report an out-of-bounds value (Bug #59550).

Innodb_buffer_pool_pages_total

The total size of the InnoDB buffer pool, in pages. When using compressed tables, the reported Innodb_buffer_pool_pages_data value may be larger than Innodb_buffer_pool_pages_total (Bug #59550)

Innodb_buffer_pool_read_ahead

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

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

Innodb_buffer_pool_resize_status

The status of an operation to resize the InnoDB buffer pool dynamically, triggered by setting the innodb_buffer_pool_size parameter dynamically. The innodb_buffer_pool_size parameter is dynamic, which allows you to resize the buffer pool without restarting the server. See Configuring InnoDB Buffer Pool Size Online for related information.

Innodb_buffer_pool_wait_free

Normally, writes to the InnoDB buffer pool happen in the background. When InnoDB needs to read or create a page and no clean pages are available, InnoDB flushes some dirty pages first and waits for that operation to finish. This counter counts instances of these waits. If innodb_buffer_pool_size has been set properly, this value should be small.

Innodb_buffer_pool_write_requests

The number of writes done to the InnoDB buffer pool.

Innodb_data_fsyncs

The number of fsync() operations so far. The frequency of fsync() calls is influenced by the setting of the innodb_flush_method configuration option.

Innodb_data_pending_fsyncs

The current number of pending fsync() operations. The frequency of fsync() calls is influenced by the setting of the innodb_flush_method configuration option.

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 (in bytes).

Innodb_data_reads

The total number of data reads (OS file 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 to the doublewrite buffer. See Section 15.11.1, 「InnoDB Disk I/O」.

Innodb_dblwr_writes

The number of doublewrite operations that have been performed. See Section 15.11.1, 「InnoDB Disk I/O」.

Innodb_have_atomic_builtins

Indicates whether the server was built with atomic instructions.

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 write requests for the InnoDB redo log.

Innodb_log_writes

The number of physical writes to the InnoDB redo log file.

Innodb_num_open_files

The number of files InnoDB currently holds open.

Innodb_os_log_fsyncs

The number of fsync() writes done to the InnoDB redo log files.

Innodb_os_log_pending_fsyncs

The number of pending fsync() operations for the InnoDB redo log files.

Innodb_os_log_pending_writes

The number of pending writes to the InnoDB redo log files.

Innodb_os_log_written

The number of bytes written to the InnoDB redo log files.

Innodb_page_size

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 by operations on InnoDB tables.

Innodb_pages_read

The number of pages read from the InnoDB buffer pool by operations on InnoDB tables.

Innodb_pages_written

The number of pages written by operations on InnoDB tables.

Innodb_row_lock_current_waits

The number of row locks currently being waited for by operations on InnoDB tables.

Innodb_row_lock_time

The total time spent in acquiring row locks for InnoDB tables, in milliseconds.

Innodb_row_lock_time_avg

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

Innodb_row_lock_time_max

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

Innodb_row_lock_waits

The number of times operations on InnoDB tables had to wait for a row lock.

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.

Innodb_truncated_status_writes

The number of times output from the SHOW ENGINE INNODB STATUS statement has been truncated.

Key_blocks_not_flushed

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

Key_blocks_unused

The number of unused blocks in the MyISAM 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.8, 「Server System Variables」.

Key_blocks_used

The number of used blocks in the MyISAM 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 MyISAM key cache.

Key_reads

The number of physical reads of a key block from disk into the MyISAM key cache. 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 MyISAM key cache.

Key_writes

The number of physical writes of a key block from the MyISAM key cache 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.

In MySQL 8.0.16 and later, this variable shows the cost of queries that have multiple query blocks, summing the cost estimates of each query block, estimating how many times non-cacheable subqueries are executed, and multiplying the cost of those query blocks by the number of subquery executions. (Bug #92766, Bug #28786951) Prior to MySQL 8.0.16, Last_query_cost was computed accurately only for simple, 「flat」 queries, but not for complex queries such as those containing subqueries or UNION. (For the latter, the value was set to 0.)

Last_query_partial_plans

The number of iterations the query optimizer made in execution plan construction for the previous query. Last_query_cost has session scope.

Locked_connects

The number of attempts to connect to locked user accounts. For information about account locking and unlocking, see Section 6.2.19, 「Account Locking」.

Max_execution_time_exceeded

The number of SELECT statements for which the execution timeout was exceeded.

Max_execution_time_set

The number of SELECT statements for which a nonzero execution timeout was set. This includes statements that include a nonzero MAX_EXECUTION_TIME optimizer hint, and statements that include no such hint but execute while the timeout indicated by the max_execution_time system variable is nonzero.

Max_execution_time_set_failed

The number of SELECT statements for which the attempt to set an execution timeout failed.

Max_used_connections

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

Max_used_connections_time

The time at which Max_used_connections reached its current value.

Not_flushed_delayed_rows

This status variable is deprecated (because DELAYED inserts are not supported), and will be removed in a future release.

mecab_charset

The character set currently used by the MeCab full-text parser plugin. For related information, see Section 12.9.9, 「MeCab Full-Text Parser Plugin」.

Ongoing_anonymous_transaction_count

Shows the number of ongoing transactions which have been marked as anonymous. This can be used to ensure that no further transactions are waiting to be processed.

Ongoing_anonymous_gtid_violating_transaction_count

This status variable is only available in debug builds. Shows the number of ongoing transactions which use gtid_next=ANONYMOUS and that violate GTID consistency.

Ongoing_automatic_gtid_violating_transaction_count

This status variable is only available in debug builds. Shows the number of ongoing transactions which use gtid_next=AUTOMATIC and that violate GTID consistency.

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 table definitions.

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.

Opened_table_definitions

The number of table definitions that have been cached.

Opened_tables

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

Performance_schema_xxx

Performance Schema status variables are listed in Section 26.16, 「Performance Schema Status Variables」. These variables provide information about instrumentation that could not be loaded or created due to memory constraints.

Prepared_stmt_count

The current number of prepared statements. (The maximum number of statements is given by the max_prepared_stmt_count system variable.)

Qcache_free_blocks

This status variable was removed in MySQL 8.0.3.

Qcache_free_memory

This status variable was removed in MySQL 8.0.3.

Qcache_hits

This status variable was removed in MySQL 8.0.3.

Qcache_inserts

This status variable was removed in MySQL 8.0.3.

Qcache_lowmem_prunes

This status variable was removed in MySQL 8.0.3.

Qcache_not_cached

This status variable was removed in MySQL 8.0.3.

Qcache_queries_in_cache

This status variable was removed in MySQL 8.0.3.

Qcache_total_blocks

This status variable was removed in MySQL 8.0.3.

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.

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. This includes only statements sent to the server by clients and not 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_semi_sync_master_clients

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 in microseconds the master waited for a slave reply. This variable is always 0, is deprecated and it will be removed in a future version.

This variable is available only if the master-side semisynchronous replication plugin is installed.

Rpl_semi_sync_master_net_wait_time

The total time in microseconds the master waited for slave replies. This variable is always 0, is deprecated and it will be removed in a future version.

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.

Rpl_semi_sync_master_no_times

The number of times the master turned off semisynchronous replication.

This variable is available only if the master-side semisynchronous replication plugin is installed.

Rpl_semi_sync_master_no_tx

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.

Rpl_semi_sync_master_status

Whether semisynchronous replication currently is operational on the master. The value is ON if the plugin has been enabled and a commit acknowledgment has occurred. It is OFF 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 in microseconds 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 in microseconds the master waited for transactions.

This variable is available only if the master-side semisynchronous replication plugin is installed.

Rpl_semi_sync_master_tx_waits

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.

Rpl_semi_sync_master_yes_tx

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.

Rpl_semi_sync_slave_status

Whether semisynchronous replication currently is operational on the slave. This is ON if the plugin has been enabled and the slave I/O thread is running, OFF otherwise.

This variable is available only if the slave-side semisynchronous replication plugin is installed.

Rsa_public_key

This variable is available if MySQL was compiled using OpenSSL (see Section 6.3.3, 「SSL Library-Dependent Capabilities」). Its value is the public key used by the sha256_password authentication plugin for RSA key pair-based password exchange. The value is nonempty only if the server successfully initializes the private and public keys in the files named by the sha256_password_private_key_path and sha256_password_public_key_path system variables. The value of Rsa_public_key comes from the latter file.

For information about sha256_password, see Section 6.4.1.2, 「SHA-256 Pluggable Authentication」.

Secondary_engine_execution_count

For future use. This variable was added in MySQL 8.0.13.

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_heartbeat_period

This variable is obsolete and was removed in MySQL 8.0.1. Instead, use the HEARTBEAT_INTERVAL column of the replication_connection_configuration table.

Slave_last_heartbeat

This variable is obsolete and was removed in MySQL 8.0.1. Instead, use the LAST_HEARTBEAT_TIMESTAMP column of the replication_connection_status 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 17.4.1.30, 「Replication and Temporary Tables」. This variable reports the total count of open temporary tables for all replication channels.

Slave_received_heartbeats

This variable is obsolete and was removed in MySQL 8.0.1. Instead, use the COUNT_RECEIVED_HEARTBEATS column of the replication_connection_status table.

Slave_retried_transactions

This variable is obsolete and was removed in MySQL 8.0.1. Instead, use the COUNT_TRANSACTIONS_RETRIES column of the replication_applier_status table.

Slave_rows_last_search_algorithm_used

The search algorithm that was most recently used by this slave to locate rows for row-based replication. The result shows whether the slave used indexes, a table scan, or hashing as the search algorithm for the last transaction executed on any channel.

The method used depends on the setting for the slave_rows_search_algorithms system variable, and the keys that are available on the relevant table.

This variable is available only for debug builds of MySQL.

Slave_running

This variable is obsolete and was removed in MySQL 8.0.1. Instead, use the SERVICE_STATE column of the replication_connection_status and replication_applier_status tables.

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). If MySQL supports TLSv1.3, the value includes the possible TLSv1.3 ciphersuites. See Section 6.3.5, 「Encrypted Connection Protocols and Ciphers」.

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_server_not_after

The last date for which the SSL certificate is valid. To check SSL certificate expiration information, use this statement:

mysql> SHOW STATUS LIKE 'Ssl_server_not%'; +-----------------------+--------------------------+ | Variable_name | Value | +-----------------------+--------------------------+ | Ssl_server_not_after | Apr 28 14:16:39 2025 GMT | | Ssl_server_not_before | May 1 14:16:39 2015 GMT | +-----------------------+--------------------------+ Ssl_server_not_before

The first date for which the SSL certificate is valid.

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 used by the server for a connection that uses SSL. The value is a bitmask; bits are defined in the openssl/ssl.h header file:

# define SSL_VERIFY_NONE 0x00
# define SSL_VERIFY_PEER 0x01
# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
# define SSL_VERIFY_CLIENT_ONCE 0x04
複製代碼

SSL_VERIFY_PEER indicates that the server asks for a client certificate. If the client supplies one, the server performs verification and proceeds only if verification is successful. SSL_VERIFY_CLIENT_ONCE indicates that a request for the client certificate will be done only in the initial handshake.

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.

Table_open_cache_hits

The number of hits for open tables cache lookups.

Table_open_cache_misses

The number of misses for open tables cache lookups.

Table_open_cache_overflows

The number of overflows for the open tables cache. This is the number of times, after a table is opened or closed, a cache instance has an unused entry and the size of the instance is larger than table_open_cache / table_open_cache_instances.

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.


Wechat-westcall
相關文章
相關標籤/搜索