MySQL 索引最佳實踐完整指南
在資料庫優化的世界裡,索引是提升查詢效能的關鍵武器。本文基於 Rick James 的 MySQL Indexing Cookbook 整理出 MySQL 索引設計的核心原則與實戰技巧。 為什麼索引如此重要? 想像一下在沒有目錄的百科全書中查找特定資訊 - 這就是沒有索引的資料表查詢。適當的索引可以將查詢時間從數秒縮短到毫秒級別,特別是在處理大量資料時。 索引設計的黃金法則 1. 三步驟索引設計演算法 建立有效索引的基本步驟: 步驟 1:優先處理等值條件 將 WHERE 子句中與常數比較的欄位放在索引最前面: -- 查詢 SELECT * FROM users WHERE status = 'active' AND department = 'IT'; -- 索引設計 INDEX(status, department) 步驟 2:加入範圍條件欄位 範圍查詢(BETWEEN、>、< 等)的欄位放在等值條件之後: -- 查詢 SELECT * FROM orders WHERE status = 'pending' AND created_date >= '2025-01-01'; -- 索引設計 INDEX(status, created_date) -- 等值在前,範圍在後 步驟 3:考慮 GROUP BY 和 ORDER BY 如果沒有範圍條件,可以將 GROUP BY 或 ORDER BY 的欄位加入索引: ...