【MySQL】索引优化原则

   日期:2020-05-03     浏览:93    评论:0    
核心提示:前面几篇博文谈到索引使用场景和explain命令帮助我们分析索引的执行情况,今天进入正题,来谈谈索引数据库

前面几篇博文谈到索引使用场景和explain命令帮助我们分析索引的执行情况,今天进入正题,来谈谈索引优化的原则。

1、全值匹配

查询语句尽量使用全值匹配。

2、左前缀原则

如果一个索引是组合索引,索引了多列,要遵循左前缀原则,即查询从索引的左前缀开始,不能跳过索引中间的列

3、不要在索引列上操作

操作包括:计算、函数、自动或手动的类型转换,不要在索引列上做上述任何操作,否则索引失效并转为全表扫描。

4、范围条件右边的列索引全失效

当组合索引中出现范围条件,那么该范围条件右边的列索引全部失效。因此在设计和使用索引时,应把经常进行范围查询的列作为索引的最右列。

5、按需取数据,少用select *

在查询中少用select *,否则MySQL需要遍历结果列存在哪些字段。同时,应尽量使用覆盖索引,能避免二次查表。

6、避免使用 != 或 <>

在使用不等于(!= 或 <>)时,无法使用索引,导致全表扫描。

7、避免is null 或 is not null

判断空值的查询条件索引失效,导致全表扫描。

8、避免like以通配符开头

查询条件like以通配符%开头,如 name like ("%abc"),索引失效,导致全表扫描。

那么如果业务需要必须要用通配符%开头怎么办?

答案是:使用覆盖索引

先看看表中有哪些数据:

建立索引NAME和age的组合索引:

覆盖索引,生效:

非覆盖索引,失效:

9、少用or

使用or来连接查询条件时,索引失效。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服