1.前导模糊查询不能利用索引(like '%XX'或者like '%XX%')

'A%'就可以正常使用索引

2.如果mysql估计使用全表扫描要比使用索引快,则不使用索引

3.OR前后存在非索引的列,索引失效

如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)

要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引

4.普通索引的不等于不会走索引;如果是主键,则还是会走索引;如果是主键或索引是整数类型,则还是会走索引

5.组合索引最左前缀

如果组合索引为:(name,email)

name and email -- 使用索引

name -- 使用索引

email -- 不使用索引

6.is null可以使用索引,is not null无法使用索引

最好在设计表时设置NOT NULL约束,比如将INT类型的默认值设为0,将字符串默认值设为''。

7.计算、函数导致索引失效另外一种情况

#使用到了索引explain select * from student_info where name like 'li%';#未使用索引,花费时间更久explain select * from student_info where LEFT(name,2)='li';

扩展:

如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引

#不会使用name的索引explain select * from student_info where name=123;#使用到索引explain select * from student_info where name='123';

如上,name字段是VARCAHR类型的,但是比较的值是INT类型的,name的值会被隐式的转换为INT类型再比较,中间相当于有一个将字符串转为INT类型的函数。这也相当于是函数导致的索引失效。

8.字符集不统一

统一使用utf8mb4( 5.5.3 版本以上支持 ) 兼容性更好,统一字符集可以避免由于字符集转换产生的乱码。不同的 字符集 进行比较前需要进行 转换 会造成索引失效。。

Mysql索引失效的几种情况总结相关推荐

  1. MySQL索引失效的9种情况(针对InnoDB存储引擎)

    前言 MySQL中提高查询性能的最有效的方式之一就是对数据表合理的设计索引,优秀的索引的设计方案很大程度上可以提高查询的性能. 因此,索引对查询的速度有着至关重要的影响. 为了尽量的使优化器用到我们的 ...

  2. 详解MySQL索引失效的几种情况

    MySQL索引是提高查询效率的重要手段.索引失效会导致查询效率下降,甚至全表扫描,影响数据库性能.以下是可能导致MySQL索引失效的情况: 1. 使用or操作符 当where语句中使用or操作符并且o ...

  3. mysql数据索引失效_MySQL索引失效的几种情况

    1.索引无法存储null值 a.单列索引无法储null值,复合索引无法储全为null的值. b.查询时,采用is null条件时,不能利用到索引,只能全表扫描. 为什么索引列无法存储Null值? a. ...

  4. [索引] 索引失效的几种情况

    一.单表索引失效的几种情况 建立员工记录表 CREATE TABLE `staffs` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255 ...

  5. sql索引失效的几种情况

    sql索引失效的几种情况 1.使用 != 或者 <> 导致索引失效 2.类型不一致导致索引失效 3.函数导致索引失效 4.运算符导致索引失效 5.模糊搜索导致索引失效 6.NOT IN.N ...

  6. MySQL 索引失效的 15 种场景!

    背景 无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库不走索引的坑.常见的现象就是:明明在字段上添加了索引,但却并未生效. 前些天就遇到一个稍微特殊的场景,同一条SQL语句,在某些参 ...

  7. MySql复合索引失效的几种情况

    建表 插入数据 建立复合索引 或者 查询插入的索引 执行测试Sql 测试数据1 这里常规查询,分别查询了当使用复合索引中的部分字段当查询条件时的索引使用情况,通过explain执行计划结果显示,以上四 ...

  8. mysql索引失效_导致MySQL索引失效的几种常见写法

    最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用的易于 ...

  9. MySQL索引失效的几种常见场景

    前言 我们在使用MySQL查询数据的时候,总会遇见没有正确使用到索引的情况. 这里我们列举几种常见的,搜索条件使用了索引列却没有走索引的场景. (以下测试均在MySQL8.0.28中完成,且所有数据均 ...

  10. 索引失效的几种情况和原因剖析

    在网上看到很多关于索引失效的情况,但是看了感觉都讲的不过明确,或者只告诉你这么查询会导致索引失效但是却没有告诉你索引失效的原因,这里做一些详细的说明. 一般我们常见的出现索引失效的有这么几个原因 1, ...

最新文章

  1. 天际汽车牛胜福:受感知系统等影响 点对点L3将于五年后实现...
  2. 计算机科学与技术联合培养是什么意思,联合培养
  3. 孔兵 库卡机器人_库卡机器人中华区CEO孔兵:机器人是制造业升级的关键
  4. C#生成CHM文件(中级篇)
  5. 零基础 ABAP 学习教程系列文章的目录
  6. 数据结构----出栈顺序有效性的判断
  7. 使用System Center Essentials 2007查看计算机的软件清单
  8. ASP.NET Ajax In Action!读书笔记1
  9. visio怎么画球_cad怎么画装配图
  10. RJ45网线水晶头的接法
  11. 控件(五)——Gridview控件以SqlDataSource控件为数据源实现换肤功能
  12. JAVA 05 输入年份判断生肖
  13. 自动化运维原来如此简单之工具建设
  14. RuntimeError: mat1 and mat2 shapes cannot be multiplied (32x7 and 784x1024) 报错解决
  15. 数据防泄密产品实测对比
  16. 前端css中常见的-moz-,-webkit-,-o-分别是什么?
  17. 用python计算100以内所有奇数的和_python如何求1到100的奇数和
  18. 最近整理的一些常见的面试题,面试大全,黑马程序员面试宝典题库---框架--篇
  19. 网课男生穿搭技巧尔雅答案 吴小吟
  20. 电信重组能给我们老百姓带来什么好处?

热门文章

  1. linux bios格式化磁盘,BIOS设置与磁盘分区、格式化.doc
  2. lable 标签右对齐
  3. win10电脑怎么将html网页做成壁纸,win10系统怎么在电脑桌面上创建网页的快捷方式...
  4. 【磁盘】 文件外存分配方式
  5. html 415错误,HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)
  6. python 删除文件夹中相似图片
  7. 笔记本电脑频繁自动重启_电脑老是自动重启,电脑总是自动重启 - 电脑经常自动重启的解决办法 - 安全专题...
  8. 简述力法计算弹性固定无铰拱的原理_隧道结构力学计算
  9. 英文书信格式——书写款式(转载)
  10. can和could的用法_can could 的区别与用法