mysql最左前缀原则

最左前缀:顾名思义,就是最左优先,上一个博客中数据库我们创建了UNIQUE KEY `uk_device` (`device_id`,`user_id`,`token`)多列索引,相当于创建了(device_id)单列索引,(device_id,user_id)组合索引以及(device_id,user_id,token)组合索引。

结论是索引键是(a_b_c)seclect * from table where a=' ';以下情况:

1:a=  可以命中索引,b=  不可以命中索引,c=  不可以命中索引。

2:a=‘’ and b=‘’可以命中,a=‘’ and c=‘’  可以命中索引。

3:b=’‘and a=’‘可以命中索引, b=‘‘ and c=’‘  不可以命中索引。

4:c=’‘ and a=’‘ 可以命中 索引,c=’‘ and  b=’‘不可命中索引。

测试的数据量小 看不出来将果效果,如果没有中间条件返回的结果集只用了第一个索引,
如果第二个索引是性别这样的的话 可以比如:select 地区=’黑龙江‘ and  sex in(男,女) and age=18;这样就可以第三个索引生效了。

possible_keys:指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用。

Key:key列显示MySQL实际决定使用的键(索引)。

猜你喜欢

转载自blog.csdn.net/lettyisme/article/details/84967845