MySQL 伺服器維護許多狀態變數,這些變數提供有關其操作的資訊。您可以使用 SHOW [GLOBAL | SESSION] STATUS
陳述式來檢視這些變數及其值 (請參閱 第 15.7.7.36 節,「SHOW STATUS 陳述式」)。可選的 GLOBAL
關鍵字會彙總所有連線的值,而 SESSION
則會顯示目前連線的值。
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 |
+-----------------------------------+------------+
許多狀態變數會被 FLUSH STATUS
陳述式重設為 0。
本節提供每個狀態變數的描述。如需狀態變數摘要,請參閱 第 7.1.6 節,「伺服器狀態變數參考」。如需有關 NDB Cluster 特定狀態變數的資訊,請參閱 第 25.4.3.9.3 節,「NDB Cluster 狀態變數」。
狀態變數具有以下含義。
由於客戶端在未正確關閉連線的情況下死掉而中止的連線數。請參閱 第 B.3.2.9 節,「通訊錯誤和中止的連線」。
連線到 MySQL 伺服器的失敗嘗試次數。請參閱 第 B.3.2.9 節,「通訊錯誤和中止的連線」。
如需其他連線相關資訊,請檢查
Connection_errors_
狀態變數和xxx
host_cache
表格。Authentication_ldap_sasl_supported_methods
實作 SASL LDAP 驗證的
authentication_ldap_sasl
外掛程式支援多種驗證方法,但根據主機系統組態,並非所有方法都可用。Authentication_ldap_sasl_supported_methods
變數提供對支援方法的探索。其值是一個字串,由以空格分隔的支援方法名稱組成。範例:"SCRAM-SHA 1 SCRAM-SHA-256 GSSAPI"
使用暫時二進位日誌快取,但超出
binlog_cache_size
的值,並使用暫存檔案儲存交易中陳述式的交易數量。導致二進位日誌交易快取寫入磁碟的非交易陳述式數量,會單獨追蹤在
Binlog_stmt_cache_disk_use
狀態變數中。快取權限物件的數量。每個物件都是使用者及其作用中角色的權限組合。
使用二進位日誌快取的交易數量。
使用二進位日誌陳述式快取,但超出
binlog_stmt_cache_size
的值,並使用暫存檔案儲存這些陳述式的非交易陳述式數量。使用二進位日誌語句快取的非交易語句數量。
從所有客戶端接收的位元組數。
發送到所有客戶端的位元組數。
Caching_sha2_password_rsa_public_key
caching_sha2_password
身份驗證外掛程式用於基於 RSA 金鑰對的密碼交換的公鑰。只有當伺服器成功初始化由caching_sha2_password_private_key_path
和caching_sha2_password_public_key_path
系統變數命名的檔案中的私鑰和公鑰時,該值才不為空。Caching_sha2_password_rsa_public_key
的值來自後者檔案。Com_
語句計數器變數表示每個xxx
xxx
語句已執行的次數。每種語句類型都有一個狀態變數。例如,Com_delete
和Com_update
分別計算DELETE
和UPDATE
語句。Com_delete_multi
和Com_update_multi
類似,但適用於使用多資料表語法的DELETE
和UPDATE
語句。即使準備好的語句引數未知或執行期間發生錯誤,所有
Com_stmt_
變數也會增加。換句話說,它們的值對應於發出的請求數,而不是成功完成的請求數。例如,由於狀態變數是在每次伺服器啟動時初始化的,並且不會在重新啟動時保留,因此追蹤xxx
RESTART
和SHUTDOWN
語句的Com_restart
和Com_shutdown
變數通常的值為零,但如果執行了RESTART
或SHUTDOWN
語句但失敗,則可以不為零。Com_stmt_
狀態變數如下xxx
Com_stmt_prepare
Com_stmt_execute
Com_stmt_fetch
Com_stmt_send_long_data
Com_stmt_reset
Com_stmt_close
這些變數代表準備好的語句命令。它們的名稱參照網路層中使用的
COM_
命令集。換句話說,每當執行準備好的語句 API 呼叫(例如 mysql_stmt_prepare()、mysql_stmt_execute() 等)時,它們的值就會增加。但是,xxx
Com_stmt_prepare
、Com_stmt_execute
和Com_stmt_close
也會分別為PREPARE
、EXECUTE
或DEALLOCATE PREPARE
而增加。此外,較舊的語句計數器變數Com_prepare_sql
、Com_execute_sql
和Com_dealloc_sql
的值也會分別為PREPARE
、EXECUTE
和DEALLOCATE PREPARE
語句而增加。Com_stmt_fetch
表示從游標擷取時發出的網路往返總數。Com_stmt_reprepare
表示伺服器自動重新準備語句的次數,例如,在語句引用的資料表或檢視表的元資料變更之後。重新準備操作會遞增Com_stmt_reprepare
以及Com_stmt_prepare
。Com_explain_other
表示執行的EXPLAIN FOR CONNECTION
語句數。請參閱 第 10.8.4 節,〈取得具名連線的執行計畫資訊〉。Com_change_repl_filter
表示執行的CHANGE REPLICATION FILTER
語句數。客戶端連線是否在客戶端/伺服器協定中使用壓縮。
此狀態變數已棄用;預期會在未來版本的 MySQL 中移除。請參閱設定舊版連線壓縮。
目前連線至伺服器所使用的壓縮演算法名稱。該值可以是
protocol_compression_algorithms
系統變數值中允許的任何演算法。例如,如果連線未使用壓縮,則值為uncompressed
;如果連線使用zlib
演算法,則值為zlib
。如需更多資訊,請參閱第 6.2.8 節,〈連線壓縮控制〉。
目前連線至伺服器所使用的壓縮等級。對於
zlib
連線,該值為 6 (預設的zlib
演算法壓縮等級);對於zstd
連線,該值為 1 到 22;對於uncompressed
連線,該值為 0。如需更多資訊,請參閱第 6.2.8 節,〈連線壓縮控制〉。
這些變數提供有關客戶端連線過程中發生的錯誤資訊。它們僅為全域性,並表示來自所有主機連線的彙總錯誤計數。這些變數會追蹤主機快取未計入的錯誤(請參閱第 7.1.12.3 節,〈DNS 查閱和主機快取〉),例如與 TCP 連線無關的錯誤、在連線過程的早期發生的錯誤(甚至在 IP 位址已知之前),或是非特定於任何特定 IP 位址的錯誤(例如記憶體不足的情況)。
在監聽埠上呼叫
accept()
時發生的錯誤數。由於伺服器內部錯誤而拒絕的連線數,例如無法啟動新執行緒或記憶體不足的情況。
Connection_errors_max_connections
由於達到伺服器
max_connections
限制而拒絕的連線數。Connection_errors_peer_address
在搜尋連線客戶端 IP 位址時發生的錯誤數。
在監聽埠上呼叫
select()
或poll()
時發生的錯誤數。(此操作失敗不一定表示客戶端連線遭到拒絕。)由
libwrap
程式庫拒絕的連線數。
嘗試連線至 MySQL 伺服器的次數(無論成功與否)。
伺服器在執行語句時建立的內部磁碟暫存資料表數。
您可以比較建立的內部磁碟暫存資料表數量與建立的內部暫存資料表總數,方法是比較
Created_tmp_disk_tables
和Created_tmp_tables
的值。注意由於已知的限制,
Created_tmp_disk_tables
不會計算在記憶體對應檔案中建立的磁碟暫存資料表。依預設,TempTable 儲存引擎溢位機制會在記憶體對應檔案中建立內部暫存資料表。此行為由temptable_use_mmap
變數控制。mysqld 已建立多少個暫存檔案。
伺服器在執行語句時建立的內部暫存資料表數。
您可以比較建立的內部磁碟暫存資料表數量與建立的內部暫存資料表總數,方法是比較
Created_tmp_disk_tables
和Created_tmp_tables
的值。另請參閱第 10.4.4 節,〈MySQL 中內部暫存資料表的使用〉。
每次調用
SHOW STATUS
語句都會使用內部暫存資料表,並遞增全域Created_tmp_tables
值。伺服器用於新連線的 SSL 環境中有效的
ssl_ca
值。如果系統變數已變更,但尚未執行ALTER INSTANCE RELOAD TLS
以根據環境相關的系統變數值重新設定 SSL 環境,並更新對應的狀態變數,則此環境值可能會與目前的ssl_ca
系統變數值不同。(這種潛在的值差異適用於每對對應的環境相關系統變數和狀態變數。請參閱加密連線的伺服器端執行階段設定與監控。)也可以透過效能架構
tls_channel_status
表格取得Current_tls_
狀態變數值。請參閱第 29.12.22.9 節,「tls_channel_status 表格」。xxx
伺服器用於新連線的 TLS 環境中有效的
ssl_capath
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。伺服器用於新連線的 TLS 環境中有效的
ssl_cert
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。伺服器用於新連線的 TLS 環境中有效的
ssl_cipher
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。伺服器用於新連線的 TLS 環境中有效的
tls_ciphersuites
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。伺服器用於新連線的 TLS 環境中有效的
ssl_crl
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。注意當您重新載入 TLS 環境時,OpenSSL 會重新載入包含 CRL (憑證撤銷清單) 的檔案作為程序的一部分。如果 CRL 檔案很大,伺服器會分配大量的記憶體區塊 (檔案大小的十倍),在載入新執行個體且舊執行個體尚未釋放時,該記憶體區塊會加倍。在釋放大型配置後,程序駐留記憶體不會立即減少,因此,如果您使用大型 CRL 檔案重複發出
ALTER INSTANCE RELOAD TLS
陳述式,則程序駐留記憶體使用量可能會因此增加。伺服器用於新連線的 TLS 環境中有效的
ssl_crlpath
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。伺服器用於新連線的 TLS 環境中有效的
ssl_key
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。伺服器用於新連線的 TLS 環境中有效的
tls_version
值。有關此狀態變數及其對應系統變數之間關係的注意事項,請參閱Current_tls_ca
的說明。此狀態變數已過時 (因為不支援
DELAYED
插入);預期會在未來版本中移除。此狀態變數已過時 (因為不支援
DELAYED
插入);預期會在未來版本中移除。此狀態變數已過時 (因為不支援
DELAYED
插入);預期會在未來版本中移除。Deprecated_use_i_s_processlist_count
自上次重新啟動以來,存取
information_schema.processlist
表格的次數。Deprecated_use_i_s_processlist_last_timestamp
自上次重新啟動以來,指示上次存取
information_schema.processlist
表格的時間戳記。顯示自 Unix Epoch 以來的微秒數。最近一次指派給
dragnet.log_error_filter_rules
系統變數的結果,如果沒有發生此類指派,則為空。目前在效能架構
error_log
表格中使用的位元組數。該值可能會減少,例如,如果新事件無法容納,直到捨棄舊事件,但新事件比舊事件小。目前在效能架構
error_log
表格中存在的事件數。與Error_log_buffered_bytes
一樣,該值可能會減少。從效能架構
error_log
表格中捨棄的事件數,以便為新事件騰出空間。上次寫入效能架構
error_log
表格的時間。伺服器刷新表格的次數,無論是因為使用者執行
FLUSH TABLES
陳述式,還是由於內部伺服器運作。收到COM_REFRESH
封包也會增加計數。這與Com_flush
不同,後者指示已執行多少FLUSH
陳述式,無論是FLUSH TABLES
、FLUSH LOGS
等。所有使用者連線到伺服器所使用的記憶體。系統執行緒或 MySQL root 帳戶使用的記憶體會包含在總計中,但這些執行緒或使用者不會因為記憶體使用量而中斷連線。除非啟用
global_connection_memory_tracking
(預設為停用),否則不會計算此記憶體。也必須啟用效能架構。您可以透過設定
connection_memory_chunk_size
來 (間接) 控制此變數的更新頻率。內部
COMMIT
陳述式的數量。從表格中刪除資料列的次數。
伺服器會針對每次呼叫其
external_lock()
函式遞增此變數,這通常發生在存取表格執行個體的開頭和結尾。儲存引擎之間可能存在差異。例如,可以使用此變數來探索存取分割表格的陳述式在鎖定發生之前修剪了多少分割區:檢查陳述式的計數器增加多少,減去 2 (表格本身的 2 次呼叫),然後除以 2 即可取得鎖定的分割區數量。伺服器使用儲存引擎自己的多範圍讀取實作來存取表格的次數。
兩階段提交操作的準備階段計數器。
讀取索引中第一個條目的次數。如果這個值很高,表示伺服器正在執行大量完整索引掃描 (例如,
SELECT col1 FROM foo
,假設col1
已建立索引)。根據鍵值讀取列的請求次數。如果這個值很高,表示您的表格已為查詢適當建立索引。
讀取索引中最後一個鍵值的請求次數。使用
ORDER BY
時,伺服器會發出第一個鍵值的請求,然後發出多個下一個鍵值的請求;而使用ORDER BY DESC
時,伺服器會發出最後一個鍵值的請求,然後發出多個上一個鍵值的請求。讀取鍵值順序中下一列的請求次數。如果您使用範圍限制查詢索引列,或正在執行索引掃描,這個值就會增加。
讀取鍵值順序中上一列的請求次數。這個讀取方法主要用於最佳化
ORDER BY ... DESC
。根據固定位置讀取列的請求次數。如果您執行大量需要排序結果的查詢,這個值會很高。您可能有很多查詢需要 MySQL 掃描整個表格,或者您的聯結沒有正確使用鍵值。
讀取資料檔中下一列的請求次數。如果您執行大量表格掃描,這個值會很高。通常表示您的表格沒有正確建立索引,或者您的查詢沒有善用您已建立的索引。
要求儲存引擎執行回滾操作的次數。
要求儲存引擎放置儲存點的次數。
要求儲存引擎回滾到儲存點的次數。
要求更新表格中列的次數。
要求在表格中插入列的次數。
Innodb_buffer_pool_dump_status
記錄
InnoDB
緩衝池 中保存的頁面的操作進度,由設定innodb_buffer_pool_dump_at_shutdown
或innodb_buffer_pool_dump_now
觸發。如需相關資訊和範例,請參閱章節 17.8.3.6,「儲存和還原緩衝池狀態」。
Innodb_buffer_pool_load_status
通過讀取與較早時間點對應的一組頁面,預熱
InnoDB
緩衝池 的操作進度,由設定innodb_buffer_pool_load_at_startup
或innodb_buffer_pool_load_now
觸發。如果操作引入過多負擔,您可以透過設定innodb_buffer_pool_load_abort
來取消它。如需相關資訊和範例,請參閱章節 17.8.3.6,「儲存和還原緩衝池狀態」。
InnoDB
緩衝池 中包含資料的總位元組數。這個數字包括髒頁和乾淨頁面。當壓縮表格導致緩衝池保存大小不同的頁面時,與Innodb_buffer_pool_pages_data
相比,可獲得更精確的記憶體使用量計算結果。InnoDB
緩衝池 中包含資料的頁面數量。這個數字包括髒頁和乾淨頁面。使用壓縮表格時,回報的Innodb_buffer_pool_pages_data
值可能會大於Innodb_buffer_pool_pages_total
(錯誤 #59550)。Innodb_buffer_pool_bytes_dirty
InnoDB
緩衝池中髒頁中保存的目前總位元組數。當壓縮表格導致緩衝池保存大小不同的頁面時,與Innodb_buffer_pool_pages_dirty
相比,可獲得更精確的記憶體使用量計算結果。Innodb_buffer_pool_pages_dirty
Innodb_buffer_pool_pages_flushed
Innodb_buffer_pool_pages_latched
InnoDB
緩衝池中鎖定的頁面數量。這些是目前正在讀取或寫入的頁面,或因某些其他原因無法刷新或移除的頁面。計算此變數的成本很高,因此只有在伺服器建置時定義了UNIV_DEBUG
系統時才可用。InnoDB
緩衝池中因配置給管理負擔而忙碌的頁面數量,例如列鎖或自動調整雜湊索引。此值也可以計算為Innodb_buffer_pool_pages_total
−Innodb_buffer_pool_pages_free
−Innodb_buffer_pool_pages_data
。使用壓縮表格時,Innodb_buffer_pool_pages_misc
可能會回報超出範圍的值(錯誤 #59550)。Innodb_buffer_pool_pages_total
以頁面為單位,
InnoDB
緩衝池的總大小。當使用壓縮表格時,回報的Innodb_buffer_pool_pages_data
值可能會大於Innodb_buffer_pool_pages_total
(Bug #59550)Innodb_buffer_pool_read_ahead_evicted
Innodb_buffer_pool_read_ahead_rnd
InnoDB
發起的 「隨機」預讀次數。當查詢以隨機順序掃描表格的大部分時,會發生這種情況。Innodb_buffer_pool_read_requests
邏輯讀取請求的數量。
InnoDB
無法從緩衝池滿足,而必須直接從磁碟讀取的邏輯讀取數量。Innodb_buffer_pool_resize_status
動態調整
InnoDB
緩衝池大小的操作狀態,此操作由動態設定innodb_buffer_pool_size
參數觸發。innodb_buffer_pool_size
參數是動態的,可讓您在無需重新啟動伺服器的情況下調整緩衝池大小。 有關相關資訊,請參閱線上設定 InnoDB 緩衝池大小。Innodb_buffer_pool_resize_status_code
回報用於追蹤線上緩衝池調整大小操作的狀態碼。每個狀態碼代表調整大小操作的階段。狀態碼包括:
0:沒有正在進行的調整大小操作
1:開始調整大小
2:停用 AHI (Adaptive Hash Index)
3:撤回區塊
4:取得全域鎖
5:調整池大小
6:調整雜湊大小
7:調整大小失敗
您可以將此狀態變數與
Innodb_buffer_pool_resize_status_progress
結合使用,以追蹤調整大小操作每個階段的進度。Innodb_buffer_pool_resize_status_progress
變數會回報一個百分比值,表示目前階段的進度。有關詳細資訊,請參閱監控線上緩衝池調整大小進度。
Innodb_buffer_pool_resize_status_progress
回報一個百分比值,表示線上緩衝池調整大小操作目前階段的進度。此變數與
Innodb_buffer_pool_resize_status_code
結合使用,後者會回報一個狀態碼,表示線上緩衝池調整大小操作的目前階段。在處理完每個緩衝池實例後,百分比值會更新。當狀態碼(由
Innodb_buffer_pool_resize_status_code
回報)從一個狀態變更為另一個狀態時,百分比值會重設為 0。有關相關資訊,請參閱監控線上緩衝池調整大小進度。
通常,對
InnoDB
緩衝池的寫入會在背景中發生。當InnoDB
需要讀取或建立頁面,但沒有可用的乾淨頁面時,InnoDB
會先清除一些髒頁,並等待該操作完成。此計數器會計算這些等待的實例。如果innodb_buffer_pool_size
設定正確,則此值應較小。Innodb_buffer_pool_write_requests
對
InnoDB
緩衝池完成的寫入次數。目前為止的
fsync()
操作次數。fsync()
呼叫的頻率受到innodb_flush_method
組態選項設定的影響。如果啟用
innodb_use_fdatasync
,則會計算fdatasync()
操作的次數。目前暫止的
fsync()
操作次數。fsync()
呼叫的頻率受到innodb_flush_method
組態選項設定的影響。目前暫止的讀取次數。
目前暫止的寫入次數。
自伺服器啟動以來讀取的資料量(以位元組為單位)。
資料讀取的總次數(作業系統檔案讀取)。
資料寫入的總次數。
到目前為止寫入的資料量(以位元組為單位)。
已寫入至雙寫緩衝區的頁面數量。 請參閱第 17.11.1 節,InnoDB 磁碟 I/O。
已執行的雙寫操作次數。 請參閱第 17.11.1 節,InnoDB 磁碟 I/O。
指出伺服器是否使用原子指令建置。
針對
InnoDB
重做日誌的寫入請求次數。對
InnoDB
重做日誌檔案的實際寫入次數。InnoDB
目前保持開啟的檔案數。對
InnoDB
重做日誌檔案完成的fsync()
寫入次數。針對
InnoDB
重做日誌檔案的暫止fsync()
操作次數。針對
InnoDB
重做日誌檔案的暫止寫入次數。寫入至
InnoDB
重做日誌檔案的位元組數。InnoDB
頁面大小 (預設為 16KB)。許多值是以頁面計數的;頁面大小可讓它們輕鬆轉換為位元組。在
InnoDB
資料表上進行操作所建立的頁面數。在
InnoDB
資料表上進行操作,從InnoDB
緩衝池讀取的頁面數。在
InnoDB
資料表上進行操作所寫入的頁面數。是否啟用或停用重做日誌記錄。請參閱 停用重做日誌記錄。
Innodb_redo_log_capacity_resized
在上次完成的容量調整大小操作之後,所有重做日誌檔案的總重做日誌容量,以位元組為單位。該值包括普通和備用重做日誌檔案。
如果沒有待定的縮小調整大小操作,
Innodb_redo_log_capacity_resized
應等於innodb_redo_log_capacity
設定 (如果使用),或者如果改用 ( (innodb_log_files_in_group * innodb_log_file_size))。請參閱innodb_redo_log_capacity
文件以取得進一步的說明。 增大調整大小操作是即時的。如需相關資訊,請參閱第 17.6.5 節「重做日誌」。
Innodb_redo_log_checkpoint_lsn
重做日誌檢查點 LSN。如需相關資訊,請參閱第 17.6.5 節「重做日誌」。
目前的 LSN 代表重做日誌緩衝區中最後寫入的位置。
InnoDB
會先將資料寫入 MySQL 程序中的重做日誌緩衝區,然後要求作業系統將資料寫入目前的重做日誌檔案。如需相關資訊,請參閱第 17.6.5 節「重做日誌」。Innodb_redo_log_flushed_to_disk_lsn
已刷新至磁碟的 LSN。
InnoDB
會先將資料寫入重做日誌,然後要求作業系統將資料刷新至磁碟。已刷新至磁碟的 LSN 代表InnoDB
知道已刷新至磁碟的重做日誌中的最後位置。如需相關資訊,請參閱第 17.6.5 節「重做日誌」。一個以位元組為單位的資料大小值,表示包含使用中重做日誌資料的 LSN 範圍,從重做日誌消費者所需的最舊區塊跨越到最後寫入的區塊。如需相關資訊,請參閱第 17.6.5 節「重做日誌」。
目前磁碟上所有重做日誌檔案 (不包括備用重做日誌檔案) 所消耗的磁碟空間量,以位元組為單位。如需相關資訊,請參閱第 17.6.5 節「重做日誌」。
重做日誌是否為唯讀。
重做日誌調整大小狀態,指示重做日誌容量調整大小機制的目前狀態。可能的值包括
OK
: 沒有問題,也沒有待定的重做日誌容量調整大小操作。Resizing down
: 正在進行縮小調整大小操作。
增大調整大小操作是即時的,因此沒有待定狀態。
重做日誌 UUID。
目前在
InnoDB
資料表上進行操作所等待的資料列鎖定數量。取得
InnoDB
資料表的資料列鎖定所花費的總時間,以毫秒為單位。取得
InnoDB
資料表的資料列鎖定的平均時間,以毫秒為單位。取得
InnoDB
資料表的資料列鎖定的最大時間,以毫秒為單位。InnoDB
資料表上的操作必須等待資料列鎖定的次數。從
InnoDB
資料表刪除的資料列數。插入到
InnoDB
資料表的資料列數。從
InnoDB
資料表讀取的資料列數。在
InnoDB
資料表中更新的預估資料列數。注意此值並非 100% 精確。如需精確 (但成本較高) 的結果,請使用
ROW_COUNT()
。從屬於系統建立的結構描述的
InnoDB
資料表刪除的資料列數。插入到屬於系統建立的結構描述的
InnoDB
資料表的資料列數。在屬於系統建立的結構描述的
InnoDB
資料表中更新的資料列數。從屬於系統建立的結構描述的
InnoDB
資料表讀取的資料列數。Innodb_truncated_status_writes
從
SHOW ENGINE INNODB STATUS
陳述式輸出的內容被截斷的次數。Innodb_undo_tablespaces_active
活動中復原資料表空間的數量。包括隱式 (
InnoDB
建立的) 和顯式 (使用者建立的) 復原資料表空間。如需復原資料表空間的資訊,請參閱第 17.6.3.4 節「復原資料表空間」。Innodb_undo_tablespaces_explicit
使用者建立的復原資料表空間數量。如需復原資料表空間的資訊,請參閱第 17.6.3.4 節「復原資料表空間」。
Innodb_undo_tablespaces_implicit
由
InnoDB
建立的復原資料表空間數量。當初始化 MySQL 執行個體時,InnoDB
會建立兩個預設復原資料表空間。如需復原資料表空間的資訊,請參閱第 17.6.3.4 節「復原資料表空間」。復原資料表空間總數。包括隱式 (
InnoDB
建立的) 和顯式 (使用者建立的) 復原資料表空間,無論是活動還是非活動。如需復原資料表空間的資訊,請參閱第 17.6.3.4 節「復原資料表空間」。在
MyISAM
金鑰快取中,已變更但尚未刷新至磁碟的金鑰區塊數。MyISAM
金鑰快取中未使用的區塊數。您可以使用此值來判斷使用了多少金鑰快取;請參閱第 7.1.8 節「伺服器系統變數」中對key_buffer_size
的討論。在
MyISAM
索引快取中使用的區塊數量。此值為一個高水位標記,表示曾經一次同時使用的最大區塊數量。從
MyISAM
索引快取讀取索引區塊的請求數量。從磁碟將索引區塊實際讀取到
MyISAM
索引快取的次數。如果Key_reads
很大,則您的key_buffer_size
值可能太小。快取未命中率可以計算為Key_reads
/Key_read_requests
。將索引區塊寫入
MyISAM
索引快取的請求數量。將索引區塊從
MyISAM
索引快取實際寫入磁碟的次數。查詢優化器計算的最後編譯查詢的總成本。這對於比較同一查詢的不同查詢計劃的成本很有用。預設值 0 表示尚未編譯任何查詢。預設值為 0。
Last_query_cost
具有會話作用域。此變數顯示具有多個查詢區塊的查詢成本,總結每個查詢區塊的成本估計值,估計不可快取的子查詢執行次數,並將這些查詢區塊的成本乘以子查詢執行次數。
查詢優化器在上一個查詢的執行計畫建構中進行的迭代次數。
Last_query_partial_plans
具有會話作用域。嘗試連線到鎖定使用者帳戶的次數。有關帳戶鎖定和解鎖的資訊,請參閱第 8.2.20 節「帳戶鎖定」。
執行逾時的
SELECT
陳述式數量。設定非零執行逾時的
SELECT
陳述式數量。這包括包含非零MAX_EXECUTION_TIME
最佳化器提示的陳述式,以及未包含此提示但執行時max_execution_time
系統變數指示的逾時非零的陳述式。嘗試設定執行逾時失敗的
SELECT
陳述式數量。自伺服器啟動以來同時使用的最大連線數。
Max_used_connections
達到目前值時的時間。此狀態變數已過時 (因為不支援
DELAYED
插入);預期會在未來版本中移除。MeCab 全文剖析器外掛程式目前使用的字元集。有關相關資訊,請參閱第 14.9.9 節「MeCab 全文剖析器外掛程式」。
Ongoing_anonymous_transaction_count
顯示已標記為匿名的進行中交易數量。這可以用來確保沒有其他交易正在等待處理。
Ongoing_anonymous_gtid_violating_transaction_count
此狀態變數僅在偵錯版本中可用。顯示使用
gtid_next=ANONYMOUS
並違反 GTID 一致性的進行中交易數量。Ongoing_automatic_gtid_violating_transaction_count
此狀態變數僅在偵錯版本中可用。顯示使用
gtid_next=AUTOMATIC
並違反 GTID 一致性的進行中交易數量。已開啟的檔案數量。此計數包括伺服器開啟的一般檔案。它不包括其他類型的檔案,例如通訊端或管道。此外,此計數不包括儲存引擎使用其自身的內部函式開啟的檔案,而不是要求伺服器層級執行此操作的檔案。
已開啟的串流數量(主要用於記錄)。
已快取的資料表定義數量。
已開啟的資料表數量。
已使用
my_open()
(一個mysys
函式庫函式)開啟的檔案數量。未使用此函式開啟檔案的伺服器部分不會增加計數。已快取的資料表定義數量。
已開啟的資料表數量。如果
Opened_tables
很大,則您的table_open_cache
值可能太小。Performance_schema_
xxx
效能綱要狀態變數列於第 29.16 節「效能綱要狀態變數」。這些變數提供有關由於記憶體限制而無法載入或建立的檢測資訊。
預備陳述式的目前數量。(陳述式的最大數量由
max_prepared_stmt_count
系統變數給定。)伺服器執行的陳述式數量。此變數包含在預存程式中執行的陳述式,這與
Questions
變數不同。它不計算COM_PING
或COM_STATISTICS
命令。本節開頭的討論指出如何將此陳述式計數狀態變數與其他此類變數相關聯。
伺服器執行的陳述式數量。這僅包括用戶端傳送到伺服器的陳述式,不包括在預存程式中執行的陳述式,這與
Queries
變數不同。此變數不計算COM_PING
、COM_STATISTICS
、COM_STMT_PREPARE
、COM_STMT_CLOSE
或COM_STMT_RESET
命令。本節開頭的討論指出如何將此陳述式計數狀態變數與其他此類變數相關聯。
Replica_open_temp_tables
顯示複寫 SQL 執行緒目前已開啟的暫存資料表數量。如果值大於零,則關閉複本是不安全的;請參閱第 19.5.1.31 節「複寫和暫存資料表」。此變數報告所有複寫通道的已開啟暫存資料表總數。指示是否支援資源群組功能。
在某些平台或 MySQL 伺服器設定中,資源群組不可用或有局限性。特別是,Linux 系統可能需要針對某些安裝方法執行手動步驟。如需詳細資訊,請參閱資源群組限制。
半同步複本的數量。
已棄用的
Rpl_semi_sync_source_clients
同義詞。Rpl_semi_sync_master_net_avg_wait_time
已棄用的
Rpl_semi_sync_source_net_avg_wait_time
同義詞。Rpl_semi_sync_master_net_wait_time
已棄用的
Rpl_semi_sync_source_net_wait_time
同義詞。Rpl_semi_sync_master_net_waits
來源等待複本回覆的總次數。
已棄用的
Rpl_semi_sync_source_net_waits
同義詞。已棄用的
Rpl_semi_sync_source_no_times
同義詞。已棄用的
Rpl_semi_sync_source_no_tx
同義詞。已棄用的
Rpl_semi_sync_source_status
同義詞。Rpl_semi_sync_master_timefunc_failures
已棄用的
Rpl_semi_sync_source_timefunc_failures
同義詞。Rpl_semi_sync_master_tx_avg_wait_time
已棄用的
Rpl_semi_sync_source_tx_avg_wait_time
同義詞。Rpl_semi_sync_master_tx_wait_time
已棄用的
Rpl_semi_sync_source_tx_wait_time
同義詞。已棄用的
Rpl_semi_sync_source_tx_waits
同義詞。Rpl_semi_sync_master_wait_pos_backtraverse
Rpl_semi_sync_master_wait_sessions
已棄用的
Rpl_semi_sync_source_wait_sessions
同義詞。已棄用的
Rpl_semi_sync_source_yes_tx
同義詞。半同步複本的數量。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_net_avg_wait_time
來源端等待副本回覆的平均時間,以微秒為單位。此變數始終為
0
,且已棄用;預計會在未來的版本中移除。當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_net_wait_time
來源端等待副本回覆的總時間,以微秒為單位。此變數始終為
0
,且已棄用;預計會在未來的版本中移除。當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_net_waits
來源等待複本回覆的總次數。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。來源端關閉半同步複製的次數。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。未被副本成功確認的提交次數。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。半同步複製目前是否在來源端運作。如果外掛程式已啟用且已發生提交確認,則值為
ON
。如果外掛程式未啟用,或來源端因提交確認逾時而回到非同步複製,則值為OFF
。當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_timefunc_failures
來源端呼叫諸如
gettimeofday()
之類的時間函數時失敗的次數。當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_tx_avg_wait_time
來源端等待每個交易的平均時間,以微秒為單位。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_tx_wait_time
來源端等待交易的總時間,以微秒為單位。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。來源端等待交易的總次數。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_wait_pos_backtraverse
來源端等待二進位座標低於先前等待事件之事件的總次數。當交易開始等待回覆的順序與其二進位記錄事件的寫入順序不同時,可能會發生這種情況。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。Rpl_semi_sync_source_wait_sessions
目前正在等待副本回覆的工作階段數量。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。已由副本成功確認的提交次數。
當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。顯示半同步複製目前是否在副本上運作。如果外掛程式已啟用且複製 I/O(接收器)執行緒正在執行,則為
ON
,否則為OFF
。當來源端安裝
rpl_semi_sync_source
外掛程式(semisync_source.so
程式庫)時可用。已棄用的
Rpl_semi_sync_replica_status
同義詞。此變數的值為
sha256_password
(已棄用)驗證外掛程式用於 RSA 金鑰對式密碼交換的公開金鑰。只有當伺服器成功初始化sha256_password_private_key_path
和sha256_password_public_key_path
系統變數所命名之檔案中的私密金鑰和公開金鑰時,此值才為非空。Rsa_public_key
的值來自後者檔案。有關
sha256_password
的資訊,請參閱 第 8.4.1.3 節,「SHA-256 可插拔驗證」。Secondary_engine_execution_count
卸載到次要引擎的查詢數量。
用於 HeatWave。請參閱 HeatWave 使用者指南。
由於未使用索引而執行資料表掃描的聯結數量。如果此值不為 0,您應該仔細檢查資料表的索引。
在參考資料表上使用範圍搜尋的聯結數量。
在第一個資料表上使用範圍的聯結數量。即使值很大,通常也不是嚴重的問題。
在每個資料列之後檢查金鑰使用情況,但沒有金鑰的聯結數量。如果此值不為 0,您應該仔細檢查資料表的索引。
對第一個資料表執行完整掃描的聯結數量。
Replica_open_temp_tables
的已棄用別名。Slave_rows_last_search_algorithm_used
建立時間超過
slow_launch_time
秒的執行緒數量。執行時間超過
long_query_time
秒的查詢數量。無論是否啟用慢速查詢記錄,此計數器都會遞增。有關該記錄的資訊,請參閱 第 7.4.5 節,「慢速查詢記錄」。排序演算法必須執行的合併傳遞次數。如果此值很大,您應該考慮增加
sort_buffer_size
系統變數的值。使用範圍完成的排序數量。
已排序的資料列數量。
透過掃描資料表完成的排序數量。
建立連線所需的交涉次數。
已接受的 SSL 連線數量。
回呼快取命中的次數。
目前的加密密碼(未加密連線為空)。
可能的 SSL 加密演算法清單(非 SSL 連線為空)。如果 MySQL 支援 TLSv1.3,則該值會包含可能的 TLSv1.3 加密套件。請參閱第 8.3.2 節,「加密連線 TLS 協定和加密演算法」。
嘗試連線到啟用 SSL 的複寫來源伺服器的 SSL 連線次數。
建立與啟用 SSL 的複寫來源伺服器的連線所需的協商次數。
SSL 環境驗證深度(測試憑證鏈中的憑證數量)。
SSL 環境驗證模式。
預設的 SSL 超時。
成功連線到伺服器的 SSL 連線次數。
成功連線到啟用 SSL 的複寫來源伺服器的複本連線次數。
SSL 憑證有效的最後日期。若要檢查 SSL 憑證到期資訊,請使用此陳述式
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 憑證有效的第一個日期。
SSL 工作階段快取命中次數。
SSL 工作階段快取未命中次數。
SSL 工作階段快取模式。當
ssl_session_cache_mode
伺服器變數的值為ON
時,Ssl_session_cache_mode
狀態變數的值為SERVER
。SSL 工作階段快取溢位次數。
SSL 工作階段快取大小。
快取中 SSL 工作階段的逾時值(以秒為單位)。
SSL 工作階段快取逾時次數。
如果在目前的 MySQL 工作階段中未使用 TLS,或未重複使用 TLS 工作階段,則此值等於 0;否則等於 1。
Ssl_sessions_reused
具有工作階段範圍。Ssl_used_session_cache_entries
使用了多少 SSL 工作階段快取項目。
複寫 SSL 連線的驗證深度。
伺服器用於使用 SSL 之連線的驗證模式。該值為位元遮罩;位元定義於
openssl/ssl.h
標頭檔中# 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
表示伺服器要求用戶端憑證。如果用戶端提供憑證,伺服器會執行驗證,且僅在驗證成功時繼續。SSL_VERIFY_CLIENT_ONCE
表示僅在初始交握時執行用戶端憑證的要求。連線的 SSL 協定版本(例如,TLSv1)。如果連線未加密,則該值為空。
可以立即授予資料表鎖定要求的次數。
無法立即授予資料表鎖定要求且需要等待的次數。如果此值很高且您有效能問題,您應先最佳化您的查詢,然後分割您的資料表或多個資料表,或使用複寫。
開啟的資料表快取查閱的命中次數。
開啟的資料表快取查閱的未命中次數。
開啟的資料表快取的溢位次數。這是指在開啟或關閉資料表之後,快取執行個體有一個未使用的項目,且執行個體的大小大於
table_open_cache
/table_open_cache_instances
的次數。對於 mysqld 作為內部 XA 交易復原的交易協調器時所使用的日誌記憶體對應實作,此變數指出伺服器啟動以來用於日誌的最大頁數。如果
Tc_log_max_pages_used
和Tc_log_page_size
的乘積始終明顯小於日誌大小,則該大小大於必要大小,可以縮小。(大小由--log-tc-size
選項設定。此變數未使用:對於以二進位日誌為基礎的復原,此變數是不需要的,而且除非能夠進行兩階段提交且支援 XA 交易的儲存引擎數大於一,否則不會使用記憶體對應復原日誌方法。(InnoDB
是唯一適用的引擎。)用於 XA 復原日誌的記憶體對應實作的頁面大小。預設值是使用
getpagesize()
判定的。此變數的未使用原因與Tc_log_max_pages_used
中所述相同。對於復原日誌的記憶體對應實作,每次伺服器無法提交交易且必須等待日誌中的可用頁面時,此變數都會遞增。如果此值很大,您可能需要增大日誌大小(使用
--log-tc-size
選項)。對於以二進位日誌為基礎的復原,每次二進位日誌因有進行中的兩階段提交而無法關閉時,此變數都會遞增。(關閉操作會等待直到所有此類交易完成。)是否支援伺服器遙測度量。
如需更多資訊,請參閱 MySQL 原始碼文件中的伺服器遙測度量服務章節。
顯示目前使用遙測功能檢測的工作階段數。在卸載遙測元件時,這可用於監控有多少工作階段正在封鎖卸載操作。
如需更多資訊,請參閱 MySQL 原始碼文件中的伺服器遙測追蹤服務章節和第 35 章,「遙測」。
是否支援伺服器遙測追蹤。
如需更多資訊,請參閱 MySQL 原始碼文件中的伺服器遙測追蹤服務章節。
執行緒快取中的執行緒數。
目前開啟的連線數。
為處理連線而建立的執行緒數。如果
Threads_created
很大,您可能需要增大thread_cache_size
值。快取未命中率可以計算為Threads_created
/Connections
。未休眠的執行緒數。
此 MySQL 執行個體所使用的 OpenSSL 程式庫的執行時間版本。
此連線所使用的伺服器名稱指示 (SNI),如果由用戶端指定;否則為空。SNI 是 TLS 通訊協定的一個擴充功能(OpenSSL 必須使用 TLS 擴充功能編譯,此狀態變數才能運作)。MySQL 的 SNI 實作僅代表用戶端。
伺服器已啟動的秒數。
自上次
FLUSH STATUS
陳述式以來的秒數。