当前位置: 首页 > news >正文

mysql索引失效的几种情况

失效的几种情况

1、select * from xxx

2、索引列上有计算

3、索引列上有函数

4、like左边包含‘%’

5、使用or关键字

6、not in和not exists

7、order by

8、不满足最左匹配原则
给code、age和name这3个字段建好联合索引:idx_code_age_name。
该索引字段的顺序是:
code
age
name

它是索引字段中的第一个字段,也就是最左边的字段。只要有这个字段在,该sql已经就能走索引。
查询条件中,没有包含给定字段最左边的索引字段,即字段code。
索引确实失效了

9、字段类型不同
t_user表中的code字段,它是varchar字符类型的。


explain 
select * from user where code="101";

在这里插入图片描述
从上图中看到,该code字段走了索引。

温馨提醒一下,查询字符字段时,用双引号“和单引号’都可以。

但如果你在写sql时,不小心把引号弄掉了,把sql语句变成了:

explain 
select * from user where code=101;

在这里插入图片描述
你会惊奇的发现,该sql语句竟然变成了全表扫描。因为少写了引号,这种小小的失误,竟然让code字段上的索引失效了。

http://www.lryc.cn/news/17066.html

相关文章:

  • Windows下载安装Redis的详细步骤
  • 【蓝桥杯每日一题】差分算法
  • MyBatis Plus 数据库字段加密处理
  • openpose在win下环境配置
  • 【剑指offer-C++】JZ16:数值的整数次方
  • 了解Axios及其运用方式
  • 【LeetCode】剑指 Offer(7)
  • Python:try except 异常处理整理
  • Redis Lua脚本的详细介绍以及使用入门
  • synchronized和ReentrantLock有什么区别呢?
  • SVHN数据集下载及使用方法
  • 产业安全公开课:2023年DDoS攻击趋势研判与企业防护新思路
  • Docker 容器命令 和安装各种镜像环境
  • 【数据结构】顺序表的深度剖析
  • 当面试官问“你的SQL能力怎么样”时,怎么回答才不会掉进应聘陷阱?
  • AI作画—中国画之山水画
  • Java:Java与Python — 编码大战
  • 山东专精特新各地市扶持政策
  • 持续事务管理过程中的事件驱动
  • 【手把手一起学习】(三) Altium Designer 20 原理图库添加元件
  • 设计模式-行为型模式:观察者模式
  • Springboot 为了偷懒,我封装了一个自适配的数据单位转换工具类
  • 正则表达式
  • java进阶Map 集合
  • Java 方法超详细整理,适合新手入门
  • 软考学习笔记(题目知识记录)
  • 2021.3.3idea创建Maven项目
  • ASP.NET MVC | 创建应用程序
  • 思科设备命令讲解(超基础)
  • Qt-FFmpeg开发-保存视频流裸流(11)