美文网首页
Mysql高级(五) 索引失效

Mysql高级(五) 索引失效

作者: 卡戎li | 来源:发表于2020-05-03 18:22 被阅读0次

一、索引失效原因汇总

1.全值匹配

2.最佳左前缀法则
3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描
4.存储引擎不能使用索引中范围条件右边的列
5.尽量使用覆盖索引(只访问索引的查询(索引列和查询列一直)),减少select *
6.mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描
7.is null, is not null也无法使用索引
8.like以通配符开头(‘%abc...’)mysql索引失效会变成全表扫描的操作
9.字符串不加单引号索引失效
10.少用or,用它来连接时索引会失效

二、全值匹配

三、最佳左前缀法则(带头索引不能死,中间索引不能断)

查询从索引的最左侧列开始,并且不能跳过中间的列。

四、不在索引列上做任何操作

计算、函数、(自动or手动)类型转换,会导致索引失效而转向全表扫描

  • 添加函数


    图片.png
  • 不添加函数


    图片.png

五、存储引擎不能使用索引中范围条件右边的列

bettween、<、>、in 等右边的列使用的索引全失效

  • 正常情况


    图片.png
  • 失效情况


    图片.png
  • 优化后


    图片.png

六、尽量使用覆盖索引

只访问索引的查询(索引列和查询列一直),减少select *

  • 非覆盖索引


    图片.png
  • 覆盖索引


    图片.png

七、mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描

图片.png

八、is null, is not null也无法使用索引

  • 正常使用索引


  • is null 索引


    图片.png
  • is not null 索引无效


    图片.png

九、like

以通配符开头(‘%abc...’)mysql索引失效会变成全表扫描的操作

  • % 放右侧


    图片.png
  • % 放左侧


    图片.png
  • 用覆盖索引解决like 问题


    图片.png

十、字符串不加单引号索引失效

底层数据需要进行隐式的类型转换

  • 带双引号索引有效


    图片.png
  • 不带双引号索引无效


    图片.png

十一、少用or,用它来连接时索引有可能会失效

  • 正常


    图片.png
  • 失效


    图片.png
  • 不失效 ?


    图片.png

相关文章

  • Mysql高级(五) 索引失效

    一、索引失效原因汇总 1.全值匹配 2.最佳左前缀法则3.不在索引列上做任何操作(计算、函数、(自动or手动)类型...

  • MySQL高级 之 索引失效与优化详解

    MySQL高级 之 索引失效与优化详解 https://blog.csdn.net/wuseyukui/artic...

  • Mysql索引失效

    mysql 索引失效的原因有哪些?Mysql索引失效的原因 1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原...

  • 面试总结

    mysql 索引的类型、索引的底层结构、索引失效的情况聚簇索引和非聚簇索引mysql的隔离级别, innerdb默...

  • MySQL索引

    MySQL索引 索引介绍 索引原理与分析 组合索引 索引失效分析 索引介绍 什么是索引索引:包括聚集索引、覆盖索引...

  • Mysql 索引失效

    1.索引无法存储null值 a.单列索引无法储null值,复合索引无法储全为null的值。b.查询时,采用is n...

  • MySQL索引失效

    哪些情况需要创建索引 主键自动建立唯一索引频繁作为查询条件的字段应该创建索引多表关联查询中,关联字段应该创建索引 ...

  • MySQL索引失效

    1、举例 5 种常见的索引失效当前使用的 MySQL 版本是 5.7.29,先创建 1 张表 (1)被索引字段发生...

  • mysql索引失效

    高并发会产生的情况 1、数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成...

  • MySQL 面试系列: `order by` 语法详解

    其它MySQL 面试系列: MySQL 面试系列:为什么MySQL字符串不加引号索引失效?[https://www...

网友评论

      本文标题:Mysql高级(五) 索引失效

      本文链接:https://www.haomeiwen.com/subject/fixrghtx.html