掌握 SHOW PROCESSLIST 與 SHOW STATUS 兩大指令,即可掌握 MySQL 即時負載與歷史統計全貌。
-- 進入命令列
mysql -uroot -p
-- 查看前 100 條連線
SHOW PROCESSLIST;
-- 查看完整連線(含完整 SQL 文本)
SHOW FULL PROCESSLIST;
root 可見所有使用者連線;普通帳號僅見自身Id、User、Host、db、Command、Time、State、InfoCommand 常見值:Sleep(閒置)、Query(執行中)、Locked(鎖等待)SHOW STATUS; -- 全部變數
SHOW STATUS LIKE 'Threads_%'; -- 模糊匹配
| 類別 | 關鍵變數 | 含義 |
|---|---|---|
| 連接 | Connections | 嘗試連接總次數 |
| Max_used_connections | 歷史峰值同時連接數 | |
| Threads_connected | 當前開啟連接數 | |
| 執行緒 | Threads_running | 非睡眠執行緒數(實際負載) |
| Threads_created | 建立執行緒總數(若持續增長說明 thread_cache_size 過小) | |
| Threads_cached | 緩存中閒置執行緒數 | |
| 查詢 | Questions | 發送給 Server 的查詢總數 |
| Slow_queries | 超過 long_query_time 的查詢數 | |
| Com_select / Com_insert / Com_update / Com_delete | 各類 DML 執行計數 | |
| Qcache_hits / Qcache_inserts | 查詢快取命中/插入(已於 8.0 移除) | |
| InnoDB | Innodb_buffer_pool_read_requests / reads | 緩衝池讀請求/磁碟讀(計算命中率) |
| Innodb_rows_inserted / updated / deleted / read | 行級操作計數 | |
| Innodb_buffer_pool_wait_free | 等待緩衝池釋放頁面次數(非零表示壓力大) | |
| 其他 | Uptime | 服務運行秒數 |
| Aborted_clients / Aborted_connects | 非正常斷開/連接失敗計數 | |
| Open_tables / Opened_tables | 當前開啟/歷史開啟表數(調整 table_open_cache 參考) | |
| Key_read_requests / Key_reads | MyISAM 索引快取命中/磁碟讀 |
Threads_running、Slow_queries、Innodb_buffer_pool_wait_free 寫入時序資料庫Threads_running > CPU核心數 * 2、Slow_queries 環比激增pt-stalk 或 mysqladmin ext -i1 進行高頻採樣