參考資料:
https://www.bilibili.com/video/BV1kJ411H7w7?from=search&seid=16755936018144089586
看完視頻之后,感覺就是面試官裝逼問這個,這次遇到了來補習下。(面試官不問聯合索引,直接問知不知道索引下推)
真不知道有啥好問的?聯合索引的最左前綴原則才是開發人員應該關注的,索引下推只是滿足最左前綴原則后出來一個優化現象而已。
下面介紹下索引下推,首先創建一個myperson表
drop table if exists myperson; create table myperson( id bigint not null primary key auto_increment, name varchar(50), age int, key(name,age) )default charset=utf8 ; insert into myperson(name,age) values ('andy',29), ('張三',17), ('張三',18), ('張三',19), ('張麻子',19), ('李四',20), ('王五',21), ('趙六',22), ('田七',23); select * from myperson where name='張三' and age>18; select * from myperson where name like '張%' and age>18; --上面兩個sql就是索引下推,就是在(name,age)這個索引中,先查詢name,再查詢,最后回表查詢聚簇索引,實際上就是最左前綴原則。
