特殊文件(InnoDB 為表空間一部分),包含所有行的引用指針。B+ 樹結構存儲。
大量導入可用 DELAY_KEY_WRITE 延遲刷新,導入完畢再統一刷新。
行級鎖基於索引實現。無合適索引時退化為表鎖,影響 SELECT ... LOCK IN SHARE MODE、FOR UPDATE、INSERT/UPDATE/DELETE 併發度。
WHERE col != ... 不等號WHERE FUNC(col) = ... 函數運算LIKE '%abc' 以通配符開頭ORDER BY 條件非查詢條件表達式(多表時索引對排序無效)| 類型 | 關鍵字 | 特點 |
|---|---|---|
| 普通索引 | KEY / INDEX | 純加速查詢,無唯一限制 |
| 唯一索引 | UNIQUE | 值唯一,寫入自動檢查重複 |
| 主鍵 | PRIMARY KEY | 特殊唯一索引,非空 |
| 外鍵索引 | FOREIGN KEY | 自動建立內部索引維護約束 |
| 復合索引 | INDEX(a,b,c) | 最左前綴原則:可服務 a、(a,b)、(a,b,c) |
| 前綴索引 | INDEX(name(8)) | 字串列取前 N 字符,縮小索引體積 |
| 全文索引 | FULLTEXT | 分詞倒排,支援 MATCH() AGAINST(),InnoDB 5.6+ 支援 |
INDEX(firstname, lastname, age) -- 可用:firstname | firstname,lastname | firstname,lastname,age -- 不可用:lastname | age | lastname,age
type:避免 ALL/indexpossible_keys vs key:實際用到索引key_len:越短越好rows:預估掃描行數Extra:紅燈 Using temporary/Using filesort,綠燈 Using indexOPTIMIZE TABLE t; -- 整理碎片、排序索引 ANALYZE TABLE t; -- 更新統計信息