重要概念:mysql
1.对于mysql来讲,一条sql中,一个表不管其蕴含的索引有多少,可是有且只用一条。sql
2.对于多列索引来讲(a,b,c)其至关于3个索引(a),(a,b),(a,b,c)3个索引,又因为mysql的索引优化器,其where条件后的语句是能够乱序的,好比(b,c,a)也是能够用到索引。若是条件中a,c出现的多,为了更好的利用索引故最好将其修改成(a.c,b)。测试
ICP概念:优化
1. Index range 先确认索引的起止范围。url
2. Index Filter 索引过滤。spa
3. Table Filter 表过滤。.net
mysql5.6后提出的icp就是多了第二步,之前Index filter是放在数据上操做的,如今5.6后多了第二步,所以效率提升了不少。blog
【优化口诀】
全值匹配我最爱,最左前缀要遵照;
带头大哥不能死,中间兄弟不能断;
索引列上少计算,范围以后全失效;
LIKE百分写最右,覆盖索引不写*;
不等空值还有OR,索引影响要注意;
VAR引号不可丢, SQL优化有诀窍。索引
转载单列索引与联合索引的区别测试 https://blog.csdn.net/Abysscarry/article/details/80792876get