简单整理记录下,之前一直都没有关注过这个问题
最左前缀原则:顾名思义是最左优先,以最左边的为起点任何连续的索引都能匹配上,
注:如果第一个字段是范围查询需要单独建一个索引
注:在创建多列索引时,要根据业务需求,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