介绍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索引要非常小心,需要逐个知识点击破,才能真正掌握这个技能。只有在掌握了这个技能之后,才能在实际开发中避免出现一些常见的问题,从而提高程序的性能和稳定性。

相关文章
-
MySQL Workbench怎么建立数据库(附:sql语句创建数据库方法) 2023-07-20 12:22:29
-
MySQL Workbench是什么?(附:如何设置中文教程) 2023-07-20 11:42:31
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
mysql查询怎么区分大小写 2023-05-14 07:00:02