SHOW GLOBAL STATUS 與 SHOW VARIABLES 量身定製同樣配置在不同硬體、流量、讀寫比、資料分佈下表現迥異。唯有依據實際運行指標調優,才是正道。
SHOW VARIABLES LIKE '%slow%';
-- log_slow_queries = ON
-- slow_launch_time = 2 (秒)
SHOW GLOBAL STATUS LIKE '%slow%';
-- Slow_queries = 4148
pt-query-digest 分析慢查詢日誌,針對性優化 SQLSHOW VARIABLES LIKE 'max_connections'; -- 256
SHOW GLOBAL STATUS LIKE 'Max_used_connections'; -- 245
健康水位: Max_used_connections / max_connections ≈ 85%
ERROR 1040: Too many connections → 擴從庫分讀壓、或調大上限SHOW VARIABLES LIKE 'key_buffer_size'; -- 512MB
SHOW GLOBAL STATUS LIKE 'key_read%';
-- Key_read_requests = 27813678764
-- Key_reads = 6798830
未命中率 = Key_reads / Key_read_requests × 100% = 0.0244% (極優)
Key_blocks_used / (Key_blocks_used + Key_blocks_unused) ≈ 80%SHOW GLOBAL STATUS LIKE 'created_tmp%';
-- Created_tmp_tables = 1771587
-- Created_tmp_disk_tables = 21197 (磁盤臨時表)
磁盤臨時表比率 = Created_tmp_disk_tables / Created_tmp_tables ≤ 25%(例中 1.2% 優)
tmp_table_size、max_heap_table_size(取較小者生效)TEXT/BLOB、GROUP BY、DISTINCT 觸發磁盤臨時表SHOW GLOBAL STATUS LIKE 'open%tables%';
-- Open_tables = 919, Opened_tables = 1951
SHOW VARIABLES LIKE 'table_open_cache'; -- 2048
Open_tables / Opened_tables ≥ 85%Open_tables / table_open_cache ≤ 95%SHOW GLOBAL STATUS LIKE 'Thread%';
-- Threads_created = 570 (較大說明頻繁建線程)
SHOW VARIABLES LIKE 'thread_cache_size'; -- 64
SHOW GLOBAL STATUS LIKE 'qcache%';
SHOW VARIABLES LIKE 'query_cache%';
關鍵公式:
FLUSH QUERY CACHE 或降 query_cache_min_res_unit⚠️ MySQL 8.0 已移除 Query Cache,建議改用 Redis 等外部緩存。
SHOW GLOBAL STATUS LIKE 'sort%';
-- Sort_merge_passes = 29 (歸並排序次數)
sort_buffer_size、read_rnd_buffer_sizeSHOW GLOBAL STATUS LIKE 'open_files'; -- 1410
SHOW VARIABLES LIKE 'open_files_limit'; -- 4590
Open_files / open_files_limit ≤ 75%
SHOW GLOBAL STATUS LIKE 'table_locks%';
-- Table_locks_immediate = 490206328
-- Table_locks_waited = 2084912
即時/等待比 > 5000 → 考慮遷移至 InnoDB(行鎖),高併發寫入場景必選。
SHOW GLOBAL STATUS LIKE 'handler_read%';
-- Handler_read_rnd_next = 18912877839
SHOW GLOBAL STATUS LIKE 'com_select'; -- 222693559
表掃描率 = Handler_read_rnd_next / Com_select > 4000 → 索引缺失嚴重,優先補索引;輔助調大 read_buffer_size(≤ 8MB)。