mysql> SHOW GLOBAL STATUS;
核心指標解讀:
| 變量 | 含義 | 異常閾值建議 |
|---|---|---|
| Aborted_connects | 嘗試連接失敗次數 | > 0 秒級告警,排查網絡/認證/防火牆 |
| Connections | 歷史總連接嘗試數 | 配合 Uptime 計算 QPS 基線 |
| Max_used_connections | 歷史峰值並發連接數 | 接近 max_connections 80% 須擴容 |
| Threads_connected | 當前活躍連接數 | 實時負載指標 |
| Slow_queries | 慢查詢累計數 | 持續增長需配合慢日志分析 |
| Innodb_buffer_pool_reads | InnoDB 物理讀頁次數 | / Innodb_buffer_pool_read_requests > 1% 緩存不足 |
| Innodb_log_waits | Redo Log 寫入等待次數 | > 0 表示日志文件過小/刷盤慢 |
| Table_open_cache_misses | 表緩存未命中次數 | 持續增長調大 table_open_cache |
SHOW ENGINE INNODB STATUS; -- InnoDB 內部狀態 (鎖/事務/緩存/清理)
SHOW PROCESSLIST; -- 當前線程活動 (配合 SHOW FULL PROCESSLIST)
SHOW VARIABLES LIKE 'pat'; -- 參數值查詢
SHOW INDEX FROM tbl; -- 索引詳情
SHOW TABLE STATUS LIKE 'tbl'; -- 表統計信息 (行數/大小/自增值)
SHOW GRANTS FOR 'user'@'%'; -- 權限審計
僅支持 SELECT,但 UPDATE/DELETE 可轉換為等效 SELECT 分析。
| 欄位 | 關鍵值 | 含義 |
|---|---|---|
| type | system/const/eq_ref/ref/range/index/ALL | 訪問類型,從優到劣,**避免 ALL (全表掃描)** |
| possible_keys | 索引列表 | 優化器理論可用索引 |
| key | 實際使用索引 | NULL 表示無索引可用 |
| key_len | 字節數 | 驗證複合索引最左前綴使用長度 |
| ref | 常數/列名 | 與索引比較的值來源 |
| rows | 預估掃描行數 | 越小越好,誤差大時 ANALYZE TABLE |
| Extra | Using index/where/filesort/temporary | Using filesort/temporary 為優化重點 |
EXPLAIN SELECT tt.ticketnumber, ..., et.country, et_1.country, do.custname
FROM tt, et, et AS et_1, do
WHERE tt.submittime IS NULL
AND tt.actualpc = et.employid
AND tt.assignedpc = et_1.employid
AND tt.clientid = do.custnmbr;
-- 表定義關鍵列
tt.actualpc CHAR(10) -- 有索引
tt.assignedpc CHAR(10) -- 有索引
tt.clientid CHAR(10) -- 有索引
et.employid CHAR(15) PK
do.custnmbr CHAR(15) PK
ALTER TABLE tt MODIFY actualpc VARCHAR(15), MODIFY assignedpc VARCHAR(15), MODIFY clientid VARCHAR(15);
消除 CHAR(10) vs CHAR(15) 隱式轉換導致索引失效,type 從 ALL 變 eq_ref,行數乘積除以 74。myisamchk --analyze /path/tt; mysqladmin refresh;
修正優化器對 eq_ref 鏈路。+-------+--------+-----------------------------+---------+---------+-------------------+------+------------+
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+-------+--------+-----------------------------+---------+---------+-------------------+------+------------+
| tt | ALL | assignedpc,clientid,actualpc| NULL | NULL | NULL | 3872 | where used |
| et | eq_ref | PRIMARY | PRIMARY | 15 | db.tt.actualpc | 1 | |
| et_1 | eq_ref | PRIMARY | PRIMARY | 15 | db.tt.assignedpc | 1 | |
| do | eq_ref | PRIMARY | PRIMARY | 15 | db.tt.clientid | 1 | |
+-------+--------+-----------------------------+---------+---------+-------------------+------+------------+
驅動表 tt 全表掃描 3872 行 (接受),其餘三表主鍵點查 eq_ref,**總掃描行數從 452 億降至 3872**,性能提升 7 個數量級。
OPTIMIZE TABLE tbl_name; (實際執行 ALTER TABLE ... ENGINE=InnoDB 重建)pt-online-schema-change 或維護窗口執行SHOW GLOBAL STATUS 定期採集建立基線pt-query-digest 分析慢查詢 TOP 10EXPLAIN 逐個擊破執行計劃缺陷rows/Extra/耗時my.cnf,納入變更管理