简单的in查询 索引失效:

步骤

1、检查建立索引没有

order_status 字段为普通索引的tinyint类型

2、检查是否使用了使索引失效的语句

3、explain查看执行计划

而 in(1)时会走索引

5、查看是否关闭的全局的索引(Comment显示disabled则表示关闭了索引)

SHOW KEYS FROM wy_order;

关闭:ALTER TABLE `wy_order` DISABLE KEYS ;

开启:ALTER TABLE `wy_order` ENABLE KEYS;

还找不到原因。。

难道是mysql查询优化器认为全表扫描时如果速度大于使用索引,就会不用索引

此外,查看索引的使用情况

show status like ‘Handler_read%';

注意:

handler_read_key:这个值越高越好,越高表示使用索引查询到的次数

handler_read_rnd_next:这个值越高,说明查询低效

那么使用强制索引呢

强制索引是生效的,求大佬告知(是mysql查询优化器认为全表扫描时如果速度大于使用索引,就会不用索引)是不是我猜想的这样呀

补充:索引失效

不走索引的情况,1)被查询出来的数据超过一定比例的时候,譬如表里有1000万条记录,一条SQL查的结果有600万,肯定不会走索引了2)索引列上用了函数的时候,例如where to_char(id) = ...

3)索引列上发生类型转换的时候,如number列你偏写成where col = '1',加了引号4)没有收集统计信息的时候,CBO是生成执行计划是要看统计信息的,在oracle 9i时,统计信息不是自动收集的,有没有碰到这样的情况:一条SQL一直正常,某天突然很慢很慢,一般就是统计信息没有收集的原因。5)强制全表扫描的时候6)索引失效的时候 使用+ - * / ! 等运算符号 使用 <> 、not in 、not exist、!=

like "%_" 百分号在前(可采用在建立索引时用reverse(columnName)这种方法处理)

单独引用复合索引里非第一位置的索引列.应总是使用索引的第一个列,如果索引是建立在多个列上, 只有在它的第一个列被where子句引用时,优化器才会选择使用该索引

当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况

索引列存在null7)复合索引时,谓词非前导列的时候

mysql in 索引 失效_in 索引失效的问题相关推荐

  1. mysql in or索引失效_in 索引失效的问题

    简单的in查询 索引失效: 步骤 1.检查建立索引没有 order_status 字段为普通索引的tinyint类型 2.检查是否使用了使索引失效的语句 3.explain查看执行计划 而 in(1) ...

  2. mysql索引失效_MySQL索引失效的底层原理详解,终于有人讲清楚了

    前言 吊打面试官又来啦,今天我们讲讲MySQL索引为什么会失效,很多文章和培训机构的教程,都只会告诉你,在什么情况下索引会失效. 比如:没遵循最佳左前缀法则.范围查询的右边会失效.like查询用不到索 ...

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

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

  4. 后端开发【一大波有用知识】MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化

    一.索引 索引分类:主键索引.唯一索引.普通索引.组合索引.以及全文索引(elasticsearch) 主键索引 非空唯一索引,一个表只有一个主键索引:在 innodb 中,主键索引的 B+ 树包含表 ...

  5. mysql 子查询索引失效_mysql 索引失效的情况

    索引失效的几种情况 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.对于多列索引,不是使用 ...

  6. mysql优化器放弃索引场景,MYSQL索引优化(索引失效场景)

    学习mysql是作为一名Java工程师必不可少的事情,但是我们只认识mysql的增删查改建表等等的sql语句其实远远不够的,对于进阶mysql来说,索引是一个很重要的部分.下面我们就来说一下在mysq ...

  7. MySQL like查询后置%索引失效分析

    MySQL like查询后置%索引失效分析 表结构 CREATE TABLE `t_food_shop` (`id` bigint(20) unsigned NOT NULL AUTO_INCREME ...

  8. 【MySQL进阶-03】深入理解mysql的索引分类,覆盖索引,覆盖索引失效,回表,MRR

    MySql系列整体栏目 内容 链接地址 [一]深入理解mysql索引本质 https://blog.csdn.net/zhenghuishengq/article/details/121027025 ...

  9. 023 MySQL索引优化口诀-索引失效的常见情况

    索引优化总结口诀: 全值匹配我最爱,最左前缀要遵守: 带头大哥不能死,中间兄弟不能断: 索引列上少计算,范围之后全失效: like 百分写最右, 覆盖索引不写 * : 不等控制还有or,索引失效要少用 ...

最新文章

  1. 搜索引擎学习资源收集
  2. 基于人工神经网络的不规则小天体引力场建模
  3. JIRA配置手册 (3):字段和界面
  4. 自学python需要的软件-学习Python,从入门到精通,其实只需要两个月就够了
  5. mysql锁相关讲解及其应用——《深究mysql锁》
  6. Python中通过PyPDF2实现PDF加密
  7. 关于flex布局,我大多数常用的几个点
  8. can 总线通信协议开发_Simulink应用层开发—CAN总线信号处理
  9. 一个超级牛X的Python可视化库,隔壁老奶奶都会用!
  10. AngularJS快速上手
  11. jzoj4804-[NOIP2016提高A组模拟9.28]成绩调研【指针,模拟】
  12. 未来感十足:小米发布四曲面屏幕专利
  13. vim 显示tab键
  14. 【Computer Organization笔记26】总线 bus :多个部件之间进行数据传送的共享通道,总线设计 - 总线仲裁、数据传输模式、提高总线性能
  15. 使用mybatis生成UUID
  16. 极速手游加速SDK快速指入指南+极速手游加速器SDK参考文档
  17. cdn搭建原理_CDN运行过程四大要点,附技术原理图解,智能DNS解析
  18. The Economist 《经济学人》常用词汇总结
  19. 串行通信比并行通信的速度更高
  20. 十一、TN 的本征自洽方法、梯度更新与任意 TN 的收缩

热门文章

  1. 如何自定义PickerView 以及改变字体大小和字体颜色
  2. HTML是指什么 HTML的基本工作原理
  3. spring plugin
  4. 登录、注册的用户名去空格
  5. 常见笔顺错误的字_那些我们易错笔画笔顺的常见字
  6. git权威指南总结五:git克隆
  7. opencv编译运行demo碰到的问题
  8. 文件传输协议FTP解析
  9. 红包拓客生意宝修改记录
  10. _THROW 何解?