MySQL 索引是查詢優化的基石。本文精簡梳理四大核心索引類型定義、區別、共同點與組合索引最左前綴原則,適合快速查閱與面試複習。
| 類型 | 關鍵字 | 特點 | 允許 NULL | 典型場景 |
|---|---|---|---|---|
| 普通索引 | INDEX / KEY | 無約束,純加速查詢 | 是 | 高頻查詢欄位 |
| 唯一索引 | UNIQUE | 值唯一,業務級唯一性約束 | 是 | 身份證、手機號、郵箱 |
| 主鍵索引 | PRIMARY KEY | 特殊唯一索引,不允許 NULL,InnoDB 聚簇索引 | 否 | 表主鍵 (id) |
| 全文索引 | FULLTEXT | 僅 MyISAM (5.6+ InnoDB 也支援),長文本搜尋 | 是 | 文章內容、評論搜尋 |
組合索引 INDEX idx_a_b_c (a, b, c):
WHERE a = 1WHERE a = 1 AND b = 2WHERE a = 1 AND b = 2 AND c = 3WHERE b = 2WHERE b = 2 AND c = 3WHERE c = 3等價於隱式建立了三個索引:(a,b,c)、(a,b)、(a)。
MATCH() AGAINST() 語法,不遵循最左前綴。掌握四大類型與最左前綴,索引設計不再迷茫。