MySQL 效能調校完整指南:從慢查詢、EXPLAIN、索引到伺服器最佳化
MySQL 資料庫剛建立時,資料量可能只有幾百筆、幾千筆,即使 SQL 寫得不是很好,使用者通常也感覺不到明顯的效能問題。 但當資料成長到幾十萬、幾百萬甚至更多筆之後,相同的 SQL 查詢可能從原本不到 0.1 秒,逐漸變成數秒甚至數十秒。 這時候就需要進行 MySQL 效能調校(MySQL Performance Tuning) 。 所謂效能調校,並不是看到資料庫慢了就增加記憶體,也不是看到 SQL 慢了就到處建立索引。 比較合理的流程是:發現問題 → 找出慢查詢 → 分析執行計畫 → 判斷瓶頸 → 修改 SQL 或索引 → 再次測試。 MySQL 為什麼會變慢? 造成 MySQL 效能下降的原因很多,大致可以分成幾個層次: SQL 查詢設計不佳 缺少適當索引 索引設計錯誤 JOIN 或子查詢處理大量資料 資料表結構設計不佳 一次讀取過多不必要的資料 Transaction 或 Lock 造成等待 記憶體不足 Disk I/O 成為瓶頸 MySQL Server 參數配置不適合目前工作負載 因此,MySQL 很慢,不代表問題一定出在 MySQL Server。很多時候真正的問題其實只…