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_
命令集。換句話說,每當執行諸如 mysql_stmt_prepare()、mysql_stmt_execute() 等預備陳述式 API 呼叫時,它們的值就會增加。然而,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
系統變數值不同。(這種潛在的數值差異適用於每對對應的與環境相關的系統和狀態變數。請參閱加密連線的伺服器端執行階段配置和監控。)也可以透過 Performance Schema
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
系統變數的結果,如果沒有發生此類指派,則為空。目前在 Performance Schema
error_log
表中使用的位元組數。值可能會減少,例如,如果新事件無法容納,直到捨棄舊事件,但新事件小於舊事件。目前在 Performance Schema
error_log
表中存在的事件數量。與Error_log_buffered_bytes
一樣,該值可能會減少。從 Performance Schema
error_log
表中捨棄的事件數量,以便為新事件騰出空間。上次寫入 Performance Schema
error_log
表的時間。伺服器刷新表的次數,無論是因為使用者執行
FLUSH TABLES
語句還是由於內部伺服器操作。接收到COM_REFRESH
資料包也會遞增此值。這與Com_flush
不同,後者表示已執行多少個FLUSH
語句,無論是FLUSH TABLES
、FLUSH LOGS
等等。所有使用者連線到伺服器所使用的記憶體。系統執行緒或 MySQL root 帳戶使用的記憶體包含在總計中,但此類執行緒或使用者不會因記憶體使用量而斷開連線。除非啟用
global_connection_memory_tracking
(預設情況下停用),否則不會計算此記憶體。也必須啟用 Performance Schema。您可以使用設定
connection_memory_chunk_size
來(間接地)控制此變數的更新頻率。內部
COMMIT
陳述式的數量。從資料表中刪除列的次數。
伺服器在每次呼叫其
external_lock()
函數時會增加此變數,通常發生在存取資料表實例的開始和結束時。儲存引擎之間可能存在差異。例如,此變數可用於發現在存取分割區資料表的陳述式中,在鎖定發生之前修剪了多少個分割區:檢查陳述式的計數器增加了多少,減去 2(資料表本身的 2 次呼叫),然後除以 2 以獲得鎖定的分割區數量。伺服器使用儲存引擎自身的 Multi-Range Read 實作來存取資料表的次數。
兩階段提交操作的準備階段的計數器。
讀取索引中第一個條目的次數。如果此值很高,則表示伺服器正在進行大量的完整索引掃描(例如,
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
可能會回報超出範圍的值 (Bug #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(自動調整雜湊索引)
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
設定選項的影響。目前等待處理的讀取次數。
目前等待處理的寫入次數。
自伺服器啟動以來讀取的資料量(以位元組為單位)。
資料讀取的總次數 (OS 檔案讀取)。
資料寫入的總次數。
到目前為止寫入的資料量(以位元組為單位)。
已寫入雙寫緩衝區的頁面數量。請參閱第 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
顯示已標記為匿名的進行中交易數量。這可用於確保沒有其他交易正在等待處理。
列出 MLE 元件支援的語言。在 MySQL 9.0 中,這始終為
JavaScript
。僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.2 節,「MLE 元件狀態和會話資訊」。
MLE 元件使用的堆積目前狀態。值為下列其中一個:
Not Allocated
、Allocated
或Garbage Collection
。只有在 MLE 元件處於活動狀態時(即,如果Mle_status
等於Active
)才會配置堆積。僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.3 節,「MLE 元件記憶體和執行緒使用量」。
MLE 元件使用的已配置記憶體百分比,四捨五入至最接近的整數。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.3 節,「MLE 元件記憶體和執行緒使用量」。
所有會話中,MLE 儲存程式擲出的記憶體不足錯誤總數。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.3 節,「MLE 元件記憶體和執行緒使用量」。
使用
mle_session_reset()
函數清除 MLE 會話的次數。僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.2 節,「MLE 元件狀態和會話資訊」。
目前活動的 MLE 會話數。一旦 MySQL 使用者建立或執行 JavaScript 儲存程式,就會在給定的 MySQL 使用者會話中建立 MLE 會話。當 MySQL 使用者呼叫
mle_session_reset()
,或當 MySQL 會話結束時,就會捨棄該會話。如果 MySQL 使用者呼叫
mle_session_reset()
,然後在同一 MySQL 使用者會話中建立或執行 JavaScript 儲存程式,則會建立新的 MLE 會話。每個 MySQL 會話最多只能有一個 MLE 會話。僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.2 節,「MLE 元件狀態和會話資訊」。
自 MLE 元件啟用以來,任何時間點活動的 MLE 會話最大數目。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.2 節,「MLE 元件狀態和會話資訊」。
MLE 元件的目前狀態。值為下列其中一個:
Initializing
、Inactive
、Active
或Pending Shutdown
。僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.2 節,「MLE 元件狀態和會話資訊」。
這是目前在所有會話中快取的 MLE 儲存函數的數量。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.4 節,「MLE 元件儲存程式使用量」。
目前在所有會話中快取的 MLE 儲存程序數量。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.4 節,「MLE 元件儲存程式使用量」。
傳回目前在所有會話中快取的儲存程式(儲存程序和儲存函數)數量。一旦首次執行 MLE 儲存程式,就會在執行該程式的每個會話中快取該程式。當發生以下任何情況時,該程式會從其會話的快取中捨棄
明確捨棄儲存程式。
捨棄 MLE 會話(請參閱
Mle_sessions
的描述)在目前的 MLE 會話中擲出記憶體不足錯誤。
如果在從快取中捨棄後再次執行相同的儲存程式,則會照常再次快取該程式。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.4 節,「MLE 元件儲存程式使用量」。
最大的 MLE 儲存程式的大小,以位元組為單位。此值等於儲存程式原始文字的大小,以位元組表示。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.4 節,「MLE 元件儲存程式使用量」。
任何 MLE 儲存程式執行的 SQL 陳述式最大數目。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.4 節,「MLE 元件儲存程式使用量」。
傳回目前附加到 GraalVM 的實體執行緒數目。每當實體執行緒開始在 GraalVM 內部執行操作時,MySQL 伺服器的執行緒管理員提供的實體執行緒就會附加到 GraalVM。此類操作包括堆積建立、程式碼剖析、程式碼執行、引數轉換、記憶體使用量查詢和儲存程式的取消初始化。如果已附加的執行緒數目超過配置給 Graal 的堆積的 MB 數,則執行緒會在退出後從 GraalVM 分離。附加的實體執行緒數目不能超過配置的 Graal 堆積 MB 數的 1.5 倍。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.3 節,「MLE 元件記憶體和執行緒使用量」。
自 MLE 元件上次啟用以來,任何給定時間活動的 MLE 執行緒最大數目。
僅當安裝 MLE 元件時才可用。如需更多資訊,請參閱第 7.5.6.3 節,「MLE 元件記憶體和執行緒使用量」。
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.32 節, 「複寫和暫存資料表」。此變數報告所有複寫通道的開啟暫存資料表總數。指出是否支援資源群組功能。
在某些平台或 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.2 節,「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
陳述式以來的秒數。