题解 | 使用索引覆盖效率提升80%
查找学校是北大的学生信息
http://www.nowcoder.com/practice/7858f3e234bc4d85b81b9a6c3926f49f
select语句中使用的索引覆盖所有需要查询的字段
覆盖索引的原理:就是查询字段在 二级索引中全部找到,不需要回表查询
覆盖索引只是特定于具体select语录而言的联合索引。也就是说一个联合索引对于某个select语句,通过索引可以直接获取查询结果,而不再需要回表查询啦,就称该联合索引覆盖了这条select语句。
本题中经过测试,device_id,university 为联合索引,因此:
Select device_id,university FROM user_profile where university = "北京大学" and device_id = user_profile.device_id;
device_id = user_profile.device_id 这一步是100%成立的,使用的目的就是索引覆盖