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