简单整理记录下,之前一直都没有关注过这个问题

 

最左前缀原则:顾名思义是最左优先,以最左边的为起点任何连续的索引都能匹配上,

注:如果第一个字段是范围查询需要单独建一个索引

注:在创建多列索引时,要根据业务需求,where子句中使用最频繁的一列放在最左边。

当创建(a,b,c)复合索引时,相当于创建了(a)单列索引,(a,b)组合索引以及(a,b,c)组合索引

想要索引生效的话,只能使用 a和a,b和a,b,c三种组合

实例:以下是常见的几个查询:
mysql>SELECT `a`,`b`,`c` FROM A WHERE `a`='aa' ;

mysql>SELECT `a`,`b`,`c` FROM A WHERE  `b`='bb' AND `c`='cc';

mysql>SELECT `a`,`b`,`c` FROM A WHERE `a`='aa' AND `c`='cc';

请问:想要索引最大化的使用需要至少建几个索引

答:需要建立两个复合索引:a,c、b,c

posted on 2018-03-02 15:57  池的巧克力  阅读(1323)  评论(0编辑  收藏  举报