in 索引失效的问题
先安利一篇博文MySQL的or/in/union与索引优化
简单的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变量时.或相反情况
索引列存在null
7)复合索引时,谓词非前导列的时候
in 索引失效的问题的更多相关文章
- 【转】Oracle索引失效问题
转自:http://www.cnblogs.com/millen/archive/2010/01/18/1650423.html 失效情况分析: <> 单独的>,<,(有时会用 ...
- SQL SERVER 中is null 和 is not null 将会导致索引失效吗?
其实本来这个问题没有什么好说的,今天优化的时候遇到一个SQL语句,因为比较有意思,所以我截取.简化了SQL语句,演示给大家看,如下所示 declare @bamboo_Code varchar(3); ...
- mysql索引失效
在做项目的过程中,难免会遇到明明给mysql建立了索引,可是查询还是很缓慢的情况出现,下面我们来具体分析下这种情况出现的原因及解决方法 索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: ...
- Oracle索引失效问题:WHERE C1='' OR C2 IN(SubQuery),并发请求时出现大量latch: cache buffers chains等待
问题描述: 项目反馈某功能响应时间很长,高峰期时系统整体响应很慢... 获取相应的AWR,问题确实比较严重,latch: cache buffers chains等待,因为这些会话SQL执行时间太长, ...
- ORACLE索引失效原因归纳[转]
1.隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误. 由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给Orac ...
- oracle 使用ID关键字作列名导致索引失效
oracle表空间变更导致主键索引失效,重建索引即可
- MYSQL索引失效的各种情形总结
1) 没有查询条件,或者查询条件没有建立索引 2) 在查询条件上没有使用引导列 3) 查询的数量是大表的大部分,应该是30%以上. 4) 索引本身失效 5) 查询条件使用函数在索引列上,或者对索 ...
- oracle 索引失效原因及解决方法
oracle 索引失效原因及解决方法 2010年11月26日 星期五 17:10 一.以下的方法会引起索引失效 1,<>2,单独的>,<,(有时会用到,有时不会)3,like ...
- mysql索引之四(索引使用注意规则:索引失效--存在索引但不使用索引)
但是如果是同样的sql如果在之前能够使用到索引,那么现在使用不到索引,以下几种主要情况: 1. 随着表的增长,where条件出来的数据太多,大于15%,使得索引失效(会导致CBO计算走索引花费大于走全 ...
- oracle 索引失效原因
转自 http://www.cnblogs.com/orientsun/archive/2012/07/05/2577351.html Oracle 索引的目标是避免全表扫描,提高查询效率,但有些时 ...
随机推荐
- 《Exception团队》第一次作业:团队亮相
一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 深入了解软件思想,强化编程技术 二.正文 1. ...
- STDIN_FILENO和stdin
title: STDIN_FILENO和stdin date: 2019/03/15 22:03:22 toc: true --- STDIN_FILENO和stdin https://blog.cs ...
- What is the difference between __str__ and __repr__ in Python
from https://www.pythoncentral.io/what-is-the-difference-between-__str__-and-__repr__-in-python/ 目的 ...
- 运维工作笔记--------------mongodb无法启动问题
1.根据编译的脚本检查脚本内的服务启动路径是否正确 2.更改完成后删除pid文件 3.重启mongod
- 命令链接按钮QCommandLinkButton
继承QPushButton 它的用途类似于单选按钮的用途,因为它用于在一组互斥选项之间进行选择,命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮的替代选项,外观通常类似于平面按钮的外观,但除了 ...
- Vue中ajax返回的结果赋值
这是第二次在项目中遇到此问题,ajax请求成功后在success函数中为Vue实例data里的变量赋值,却失败了 new Vue({ el:'#app', data:{ msg:'' }, creat ...
- Dubbo+Nacos做注册中心和配置中心
项目结构 相关代码 EchoService public interface EchoService { String echo(String msg); } DefaultEchoService @ ...
- TV 丽音(NICAM)功能
丽音意谓「接近即时的缩扩音频多路广播」 丽音使用数码技术,把电视台发送的两条音频讯号数码化后进行压缩,传送后再在接收机里扩大还原.数码化使用的是14位元 PCM,32千赫采样. 这种广播法可以播出优质 ...
- 【easy】653. Two Sum IV - Input is a BST
BST树求得两个节点的和是target //因为是BST所以中序遍历得到的是递增数组 //这个题的方法就是在一个递增数组中找到两个数的和相加是目标结果 /** * Definition for a b ...
- 记一次简单的GetShell案例
案例链接: http://202.112.51.184:8007/ 打开链接,发现分了多个页面: 挨个点击,大概清楚是上传指定格式的文件然后在搜索的时候使文件执行从而GetShell,观察发现点击每个 ...