聯合索引最左

聯合索引(Composite Index或Combined Index),又稱為聯合主鍵(Compound Primary Key),是指在資料庫中為多個列建立的一個索引。當資料庫表中有超過一個列需要索引時,可以使用聯合索引。

最左匹配原則(Leftmost Prefix Rule)是指在MySQL中,當對多個列建立聯合索引時,優先選擇最左邊的列作為索引。例如,如果有一個聯合索引(a, b, c),那麼在查詢時,MySQL會首先使用索引列a,如果a列沒有滿足條件,則繼續使用b列,以此類推。

最左匹配原則的優點是可以提高查詢效率,因為MySQL可以利用索引來加速查詢。但是,如果查詢中沒有使用索引的最左邊的列,那麼整個聯合索引將無法被使用,這會導致查詢變得緩慢。

例如,假設有一個表t1,包含以下列:

id - 主鍵 name - 名字 age - 年齡 city - 城市

如果我們為(name, age, city)建立一個聯合索引,那麼以下查詢將會使用這個索引:

SELECT FROM t1 WHERE name = 'John'; SELECT FROM t1 WHERE name = 'John' AND age = 20; SELECT * FROM t1 WHERE name = 'John' AND age = 20 AND city = 'New York';

但是,以下查詢將不會使用這個索引:

SELECT FROM t1 WHERE age = 20; SELECT FROM t1 WHERE city = 'New York';

因為這些查詢沒有使用索引的最左邊的列name。