MySQL 複合索引 (Composite Index)
🧑‍💻 程式語言

MySQL 複合索引 (Composite Index)

簡單介紹 MySQL 復合索引用法與注意事項

簡單介紹 MySQL 復合索引用法與注意事項

何謂複合索引 (Composite Index)

複合索引 (Composite Index) 又稱 Multiple-Column Indexes,永許你在多個欄位上建立 index。

用法:

CREATE TABLE table_name (
    c1 data_type PRIMARY KEY,
    c2 data_type,
    c3 data_type,
    c4 data_type,
    INDEX index_name (c2,c3,c4)
);

注意事項

創建完上述的 index,將在將在以下的組合具有索引搜尋功能:

(c2)
(c2,c3)
(c2,c3,c4)

換成 SQL 語法就是:

SELECT * FROM table_name WHERE c2 = v2;
SELECT * FROM table_name WHERE c2 = v2 AND c3 = v3;
SELECT * FROM table_name WHERE c2 = v2 AND c3 = v3 AND c4 = v4;

沒錯,只有這幾種組合會有索引功能,其他的組合將不會有效果,例如 (c2,c4):

SELECT * FROM table_name WHERE c2 = v2 AND c4 = v4;

EXPLAIN 驗證

可以前面加上 EXPLAIN 去驗證有沒有透過索引搜尋:

EXPLAIN SELECT * FROM table_name WHERE c2 = v2;

主要看這幾個欄位即可

  • possible_keys: 能在該表中使用哪些索引有助於查詢
  • key: 實際使用的索引
  • key_len: 索引的長度,在不損失精確性的情況下,越短越好
  • ref: 索引的哪一列被使用

參考

Logan

資深軟體工程師,熱衷寫程式與智慧家庭 🏠

本文採用 CC BY-NC 4.0 授權

相關文章