索引失效的情况和解决,什么情况会造成索引失效

首页 > 教育 > 作者:YD1662024-05-12 01:07:05

索引失效的情况和解决,什么情况会造成索引失效(1)

在实际测试过程中对产品进行性能分析时,经常发现因缺少索引导致上层业务性能出现问题,甚至有的表一个索引都没有。

这种情况往往都是因为在设计表时,没有根据实际业务应用、数据体量等进行分析、设计。同时由于在产品开发阶段,由于开发、测试环节数据量少,索引的创建与否对于性能的影响并不明显,容易忽略其中性能风险。然而一旦发布到生产环境,随着时间推移,数据量、用户基数不断增加,暴露性能问题的风险也逐渐增大。

同时,索引创建并且用到了索引字段,但并不意味着真正使用了索引,本文主要从如何避免索引失效的角度,介绍SQL性能优化。


索引失效的情况和解决,什么情况会造成索引失效(2)

因索引失效,导致全表扫描的可能原因有以下几点:


对于复合索引失效的可能原因有以下几点:

在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。

同时,复合索引的生效原则是从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用,造成断点的原因一般有:


防止索引失效的优化方法

索引失效的情况和解决,什么情况会造成索引失效(3)

应尽量避免在 WHERE 子句中使用 != 或 <> 操作符,否则将导致引擎放弃使用索引而进行全表扫描。MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些方式的模糊查询,如 LIKE 'a%' 。

索引失效的情况和解决,什么情况会造成索引失效(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.