例如你有一個 學生表。
字段包含 學號, 班級, 姓名,性別, 出生年月日。
你創建一個 組合索引 ( 班級, 姓名)
那么
SELECT * FROM 學生表 WHERE 班級='2010級3班' AND 姓名='張三' 將使用索引.
SELECT * FROM 學生表 WHERE 班級='2010級3班' 將使用索引 .
SELECT * FROM 學生表 WHERE 姓名='張三' 將不使用索引。
刪除掉上面的索引
再創建兩個 獨立索引
索引1 ( 班級)
索引2 ( 姓名)
那么
SELECT * FROM 學生表 WHERE 班級='2010級3班' AND 姓名='張三' 將根據數據庫的分析信息, 自動選擇使用索引1或者索引2中的一個 (理論上會使用 索引2, 因為 姓名=張三的人少, 優先找到所有 姓名為 張三的人以后, 然后再從這些數據中, 找班級 = '2010級3班' 的
).
SELECT * FROM 學生表 WHERE 班級='2010級3班' 將使用索引1 .
SELECT * FROM 學生表 WHERE 姓名='張三' 將使用索引2。
總結: 組合索引是組合條件查詢時有條件查詢的順序很重要,