MySQL 效能調優涵蓋硬體、OS、配置、模式、查詢、備份六大維度。本文整理 101 條實戰技巧,從「足夠記憶體載入 InnoDB」到「免費監控工具 Monitis」,條條可落地執行。
innodb_flush_method=O_DIRECT 避免雙緩衝、innodb_buffer_pool_size 覆蓋熱數據、innodb_log_file_size 適中加速崩潰恢復、thread_cache_size ~16、skip-name-resolve、查詢快取視資料變動率啟用、tmp_table_size/max_heap_table_size 防寫磁碟、sort_buffer_size 勿過大、key_buffer_size 依命中率調整、innodb_flush_log_at_trx_commit=0 提升寫入 (犧牲 1 秒持久性)。OPTIMIZE TABLE、InnoDB 重建優化、加欄位時先刪索引、選對儲存引擎、歸檔引擎存日誌、Session 存 Memcached、VARCHAR 代替 CHAR、漸進式變更、測試環境驗證、配置「少即是多」。EXPLAIN、持續基準測試、避免 COUNT(*) 鎖表、一致查詢利用快取、GROUP BY 代替 DISTINCT、WHERE/GROUP BY/ORDER BY 用索引列、簡化索引、USE INDEX 強制、SQL_MODE=STRICT、INSERT ... ON DUPLICATE KEY UPDATE、ORDER BY ... LIMIT 代替 MAX、避免 ORDER BY RAND()、LIMIT 節制、UNION 代替子查詢、LOCK IN SHARE MODE 減少排他鎖、重啟後預熱、DROP+CREATE 代替 DELETE 清表、最小化選取列、持久連接、負載下 SHOW PROCESSLIST、鏡像資料驗證可疑查詢。mysqldump --opt、備份二進制日誌、不信任 LVM 快照、單表導出易還原、導入前禁用 FK/Unique、記錄體積增長、監控複寫錯誤延遲、定期備份、定期演練還原、部署監控 (Monitis 免費)。