>, <, BETWEEN)、ORDER BY/GROUP BY 多 → 叢集索引CREATE INDEX idx_name ON users(name(6)),只索引前 6 字元,適用前綴選擇性高的字串欄。CAST、CONVERT、DATE_FORMAT 等)。WHERE F1/2=100 → WHERE F1=200WHERE SUBSTRING(card,1,4)='5378' → WHERE card LIKE '5378%'MEDIUMINT 代替 INT,節省空間與 I/O。CHAR 查詢更快。| 查詢 | 無索引 (ms) | 有索引 (ms) | 提升 |
|---|---|---|---|
LIKE '%許%' | ~540 | ~340 | 1.6× |
LIKE '許%' | ~530 | ~65 | 8× |
LIKE '%許' | ~515 | ~315 | 1.6× |
結論:前綴匹配(LIKE '關鍵字%')受益最大,寫 SQL 時優先考慮此模式。
LEFT/RIGHT JOIN ... ON 條件欄 + WHERE 條件欄type(目標 ref/range)、rows(掃描行數)、Extra(Using index、Using where、Using filesort)。