-- 關鍵狀態變數
SHOW GLOBAL STATUS LIKE 'Threads_connected'; -- 當前連線數
SHOW GLOBAL STATUS LIKE 'Max_used_connections'; -- 歷史峰值連線
SHOW GLOBAL STATUS LIKE 'Aborted_connects'; -- 連線失敗計數
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads'; -- 磁盤讀取次數
SHOW GLOBAL STATUS LIKE 'Handler_read_rnd_next'; -- 全表掃描次數
SHOW GLOBAL STATUS LIKE 'Slow_queries'; -- 慢查詢計數
搭配 SHOW ENGINE INNODB STATUS 可深入分析鎖等待、死鎖、Buffer Pool 狀態。
原始查詢 4 表 JOIN,EXPLAIN 顯示所有表 type=ALL,預估掃描 450 億行。
CHAR(10) vs CHAR(15) 導致索引失效
ALTER TABLE tt MODIFY ActualPC VARCHAR(15);
ALTER TABLE tt MODIFY AssignedPC VARCHAR(15), MODIFY ClientID VARCHAR(15);
myisamchk --analyze /path/to/tt.MYI
mysqladmin flush-tables
| table | type | key | rows | Extra |
|---|---|---|---|---|
| tt | ALL | NULL | 3872 | where used |
| et | eq_ref | PRIMARY | 1 | - |
| et_1 | eq_ref | PRIMARY | 1 | - |
| do | eq_ref | PRIMARY | 1 | - |
預估掃描行數從 450 億降至 ~3,872,查詢時間從「永不返回」降至毫秒級。
-- 僅支援 MyISAM、InnoDB、BDB
OPTIMIZE TABLE tbl_name [, tbl_name] ...;
-- 等效操作(InnoDB)
ALTER TABLE tbl_name ENGINE=InnoDB;
ANALYZE TABLE tbl_name;
適用場景:大量 UPDATE/DELETE 後、變長欄位(VARCHAR/TEXT/BLOB)頻繁變更、表檔案明顯大於資料實際大小。
pt-query-digest:慢查詢日志分析sys.schema_table_statistics:表級 IO 統計(MySQL 5.7+)Performance Schema:待機事件、鎖等待深度分析