1、索引失效
当查询条件包含最左列并且不跳过中间的某个列时就会走索引(顺序不影响)
当跳过多值查询中间的某一列,则注意索引长度,只会使用前面列的索引
1.1当使用了范围查询(如下),则注意索引长度,813->410,范围查询之后的条件不会走索引
1.2不能在索引列上进行运算操作
1.3字符串没加单引号
索引长度403,是name=’’的索引长度,status没有走索引
且ref中从1个常量变成两个
原因:MySQL底层优化器检测到status的类型为varchar,则自动将1进行隐式类型转换(即运算操作)
1.4用or分割开的条件,如果or前的条件中的列有索引,而后面的列没有索引,则涉及的索引列不会用到
1.5以%开头的Like模糊查询,索引失效
如果仅仅是尾部模糊匹配,索引不会失效
如果是头部模糊匹配,索引会失效
前后都加上%,也会失效
2、索引使用
2.1尽量使用覆盖索引,避免使用select *

使用索引包含的字段查询时,不需要回表查询
当添加了索引不包含的字段address,则需要会表查询

