介绍mysql索引失效的情况

文 / @UTHEME

MySQL索引是非常重要的,但由于过于复杂,其中的失误也是经常发生的。本文将介绍MySQL索引失效的情况以及如何避免这些失误。

1. 违反最左前缀法则

如果索引有多列,要遵守最左前缀法则。即查询从索引的最左前列开始并且不跳过索引中的列。如果没有遵守该法则,将导致索引失效。

2. 在索引列上做任何操作

在索引列上做任何操作,如计算、函数、自动或手动类型转换等操作,都会导致索引失效,从而进行全表扫描。因此,尽量避免在索引列上做任何操作。

3. 索引范围条件右边的列

索引范围条件右边的列索引范围条件右边的索引列会失效,因此在使用索引的情况下,要尽量避免使用范围条件。

4. 尽量使用覆盖索引

只访问索引查询(索引列和查询列一致),减少select *,从而避免不必要的性能消耗。

5. 使用不等于(!=、)

在MySQL中,使用不等于(!=、)将无法使用索引,导致全表扫描(除了覆盖索引外)。因此,应尽量避免使用不等于。

6. like以通配符开头

像以通配符开头(%abc)将导致索引失效,从而进行全表扫描。

7. 字符串不加单引号

字符串不加单引号也会导致索引失效,因此在使用字符串时,要记得加单引号。

8. 少用or

少用or,因为or连接将导致索引失效。

9. orderby正常

orderby正常(索引参与了排序)可以避免额外的文件排序,从而提高性能。

10. groupby正常

groupby正常(索引参与了排序)可以避免产生临时表,从而提高性能。

总而言之,使用MySQL索引要非常小心,需要逐个知识点击破,才能真正掌握这个技能。只有在掌握了这个技能之后,才能在实际开发中避免出现一些常见的问题,从而提高程序的性能和稳定性。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。