MySQL数据库查询索引失效场景

在连表情况下,如果排序字段涉及到了两个表,排序字段将无法走索引.

在这里插入图片描述
加上第二个排序字段之后,走全表扫描了.
在这里插入图片描述
或者尽量让两次排序都用同一个表的字段,这样可以建联合索引让排序也能走索引.(不想建联合索引的话,可以第二次排序用表id,这样单个的索引也能实现二次排序)

使用了GROUP BY 导致排序字段索引失效

在这里插入图片描述
加了分组之后,order_no和school_customer_id都是有建索引的
在这里插入图片描述
在这里插入图片描述

连表字段编码方式不一致导致索引失效

如下图,如果o.id和op.order_id的编码方式不一样的话,索引会失效,并且这个索引失效通过查看执行计划看不出来.
在这里插入图片描述

LIKE查询左侧使用通配符

LIKE查询的时候如果左侧使用%或者_,索引会失效.

在这里插入图片描述
在这里插入图片描述

但如果左侧是具体的值,则还可以走索引.
在这里插入图片描述

使用!=或<>

在这里插入图片描述
在这里插入图片描述

联合索引不符合最左前缀

比如新建一个联合索引idCard_email,
在这里插入图片描述

如果直接查email是不会走该索引的.
在这里插入图片描述

但如果查询联合索引左侧的idCard则会走索引
在这里插入图片描述
或者两个字段都查的时候也走索引,两个字段都查的时候,SQL执行器会优化查询顺序的.
在这里插入图片描述

条件字段类型不一致

数据库字段是varchar,传入数字类型的话索引会失效
在这里插入图片描述
在这里插入图片描述

条件匹配对数据库字段使用了函数

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. MySQLMySQL索引失效场景

    2024-07-17 19:32:03       27 阅读
  2. 索引失效场景

    2024-07-17 19:32:03       41 阅读
  3. MySQL数据库索引失效的常见情况

    2024-07-17 19:32:03       38 阅读
  4. MySQL数据库失效:潜在场景、影响与应对策略

    2024-07-17 19:32:03       27 阅读
  5. MYSQL索引失效的情况

    2024-07-17 19:32:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 19:32:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 19:32:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 19:32:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 19:32:03       69 阅读

热门阅读

  1. Next.js 和 React的区别

    2024-07-17 19:32:03       21 阅读
  2. cadence许可管理解决方案

    2024-07-17 19:32:03       24 阅读
  3. Qt Style Sheets-样式表语法

    2024-07-17 19:32:03       18 阅读
  4. vue3中常用组件封装及使用

    2024-07-17 19:32:03       21 阅读
  5. SpringBoot+HttpClient实现文件上传下载

    2024-07-17 19:32:03       22 阅读
  6. 根据语义切分视频

    2024-07-17 19:32:03       17 阅读
  7. 量化交易对市场波动的反应机制

    2024-07-17 19:32:03       19 阅读