mysql索引查询优化
索引失效:
全值匹配:索引全部引用
最佳左前缀法则,查询从索引的最左前列开始并且不跳过中间索引
索引列上少计算或类型转换
范围之后全失效
尽量使用覆盖索引,查询字段和 ,避免使用 select *
使用 !=或<>会导致无法使用索引,进行全表查询
is null 或 is not null 无法使用索引
like 以通配符开头或导致索引失效
使用覆盖索引解决 like %id% 无法使用索引的问题
字符串不加单引号索引失效
or 连接索引失效
order by
key a_b_c(a,b,c)
最左前缀原则,order by 可以使用索引
order by a
order by a,b
order by a,b,c
order by a desc,b desc,c desc
如果where 使用索引的最左前缀定义为常量.order by 可以使用索引
where a= 1 order by b,c
where a = 1 and b = 2 order by c
where a = 1 and b > 2 order by b,c
索引失效
order by a asc,b desc,c desc
where g = 1 order b,c
where a in ( ) order by b,c