参考资料:
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,再查询,最后回表查询聚簇索引,实际上就是最左前缀原则。