mysql的索引失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的索引失效相关的知识,希望对你有一定的参考价值。

一、成功的索引优化

1.表数据如下:
技术分享图片

技术分享图片

2.查询语句如下:

explain select id, age, level from employee where dpId = 1 and age = 30 order by level
技术分享图片

Extra: Using where; Using filesort

出现了Using filesort需要进行优化。方法很简单,为查询,分组排序的字段建索引即可。

3.建索引优化:

create index idx_employee_dla on employee(dpId, age, level)

技术分享图片

再次查询结果如下,type为ref,使用到了索引key,Extra为Using Where; Using index,优化成功:

技术分享图片

二、跳过中间索引,使索引失效

技术分享图片

索引的顺序为 id, dpId,age,level,查询时跳过age索引或使用>,<,<>,!=条件查询age索引

技术分享图片
技术分享图片
Extra出现Using filesort,索引失效,需要优化。

三、查询字段加入非索引字段,使索引失效

userName为非索引字段,当查询userName字段时,Extra为:Using index condition
技术分享图片

四、使用>, <, <>, != 使索引失效



以上是关于mysql的索引失效的主要内容,如果未能解决你的问题,请参考以下文章

mysql 避免索引失效

mysql 索引失效的原因都有哪些

#yyds干货盘点#MySQL索引优化系列:索引失效

Mysql 索引失效问题探究

MySQL高级篇——索引失效案例

MySQL高级篇——索引失效案例