索引是提升查詢性能的核心手段。MySQL 支持六大類索引,各有適用場景與限制。本文系統梳理定義、創建語法、特性與優化建議。
WHERE、ORDER BY、JOIN。CREATE INDEX idx_name ON tbl(col) 或建表時 KEY idx_name (col)。CREATE UNIQUE INDEX uk_email ON user(email)。BIGINT UNSIGNED AUTO_INCREMENT)。INDEX idx_a_b_c (a, b, c)。a、a,b、a,b,c;不可用於 b、c、b,c。WHERE a=1 AND b=2 ORDER BY c 完美覆蓋。CHAR/VARCHAR/TEXT 做分詞倒排索引。ALTER TABLE t ADD FULLTEXT(content)。SELECT * FROM t WHERE MATCH(col) AGAINST('keyword')。LIKE '%word%' 不走全文索引。type、key、rows、Extra。Using index)。WHERE YEAR(dt)=2023 → WHERE dt >= '2023-01-01' AND dt < '2024-01-01')。ANALYZE TABLE 更新統計信息。