參考:https://blog.csdn.net/weixin_45969384/article/details/107597585
重點:
1.建立聯合索引時會遵循最左匹配原則,即最左優先,在檢索數據時從聯合索引的最左邊開始匹配
2.如果聯合索引中最左邊的列不在查詢條件中,則不會命中索引
如
為user表中的name、address、phone列添加聯合索引
ALTER TABLE user ADD INDEX index_three(name,address,phone);
所以,下面的三個SQL語句都可以命中索引,即使name不在第一個,也會自動做優化。
SELECT * FROM user WHERE address = ‘北京’ AND phone = ‘12345’ AND name = ‘張三’;
SELECT * FROM user WHERE name = ‘張三’ AND address = ‘北京’;
SELECT * FROM user WHERE name = ‘張三’;
但是,SELECT * FROM user WHERE address = ‘北京’ ,這個語句,不會走索引。
