SELECT xxxxxxxx,xxxxxx FROM `dw_borrow_collection` `t` WHERE (t.user_id=39064AND t.repay_time>=1452441600AND t.`status` in (0,5) AND (t.interest+t.capital)>0) ORDER BY repay_time LIMIT4;

此SQL,repay_time,user_id均有索引,但实际使用中,一次查询需要20s左右,按理说,加了索引,不应该这么慢,最后发现‘repay_time’字段类型是varchar(时间戳的varchar字段转int类型,属另一个话题),但SQL传的值确是int类型的,此时,repayment的索引会失效(隐式转换导致索引失效)。那么,哪些情况会造成mysql的索引失效呢?

我整理了一下,如下:

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

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

2. like查询以%开头不能使用索引

3. 隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误. 如果表的字段定义为varchar,有索引,但传的是int,此时索引失效。反之如果字段类型是int,value是字符串,却并不影响索引。

4. 查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,-,*,/,! 等) 错误的例子:select * from test where id-1=9; 正确的例子:select * from test where id=10;

5. 单独引用复合索引里非第一位置的索引列

6. not in ,not exist.

7. B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null 都会走

8. 联合索引 is not null 只要在建立的索引列(不分先后)都会走, in null时 必须要和建立索引第一列一起使用,当建立索引第一位置条件是is null 时,其他建立索引的列可以是is null(但必须在所有列 都满足is null的时候),或者=一个值; 当建立索引的第一位置是=一个值时,其他索引列可以是任何情况(包括is null =一个值),以上两种情况索引都会走。其他情况不会走。

mysql limit 索引失效_mysql索引失效相关推荐

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

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

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

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

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

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

  4. mysql多索引结构_MySQL 索引结构

    谈到 MYSQL 索引服务端的同学应该是熟悉的不能再熟悉,新建表的时候怎么着都知道先来个主键索引,对于经常查询的列也会加个索引加快查询速度.那么 MYSQL 索引都有哪些类型呢?索引结构是什么样的呢? ...

  5. mysql的索引优化_MySQL索引优化与分析(重要)

    建表SQL CREATE TABLE staffs ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR (24) NULL DEFAULT '' COM ...

  6. mysql验证索引正确性_mysql索引测试

    生成测试数据: 创建表用于测试: /*创建t_user表用于数据测试*/ DROP TABLE IF EXISTS t_user; CREATE TABLE `t_user` ( `id` bigin ...

  7. mysql设置id值为索引值_MySQL 索引

    一.索引作用 提供了类似于书中目录的作用,目的是为了优化查询 (一).索引种类 1.B树索引(Balance Tree) 作用 Btree的设计理念,就是让查询能够快速锁定范围,特别适合于范围查询. ...

  8. mysql索引总结_mysql 索引类型以及创建

    文章归属:http://feiyan.info/16.html  自己还是小白,从借鉴别人的东西开始学习. 关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没 ...

  9. mysql gis index 索引原理_Mysql 索引原理及优化

    Mysql 索引原理及优化 什么是索引 为什么需要索引? 索引是数据表种一个或者多个列进行排序的数据结构 索引能够大幅提升检索速度 创建.更新索引本身也会耗费空间和时间 查找结构进化史 线性查找:一个 ...

  10. mysql 索引计划_Mysql索引、查询计划、优化方向

    索引 Innodb索引(聚集索引)(聚簇表分布) Innodb是索引组织表,其结构是B+Tree.其表索引结构是聚簇表分布. 其叶子节点保存了Key+Row Data(聚集索引,按主键排序),其Key ...

最新文章

  1. 开发团队里是否需要测试人员?
  2. 再见面试官:你能说说 Spring 框架中 Bean 的生命周期吗?
  3. jzoj3626-[LNOI2014]LCA【树链剖分,线段树】
  4. python找色_python实现从一组颜色中找出与给定颜色最接近颜色的方法
  5. linux九九乘法表的脚本,shell脚本实现九九乘法表
  6. 如果孩子早恋是支持还是反对?
  7. 在你的网站中使用 AdSense广告
  8. prune研究记录(二)
  9. 今晚我准备用R语言爬下这几个视频网站!
  10. 悲剧!IDEA 突然找不到类了?
  11. hdu4027线段树
  12. 机器学习-分类-线性分类器
  13. python中的上一步和下一步快捷键
  14. Python 01:Pyton历史和入门介绍
  15. python画四边形_Matplotlib FigureCanvas:将四边形网格正确地绘制为轴
  16. Ubuntu开发环境_TLP电源管理模块、禁用笔记本触摸板
  17. 基于51单片机的指纹解锁自动开门
  18. 新零售转型时,大数据精准营销如何做?
  19. 推荐这几个硬核大佬,过年抢他们红包
  20. Excel VBA 用字典方法做先进先出法

热门文章

  1. Intellij IDEA--配色方案/主题/风格/样式--自定义/配置
  2. java求水电费_基于jsp的水电费管理系统-JavaEE实现水电费管理系统 - java项目源码...
  3. 笔记本电脑频繁自动重启_笔记本电脑频繁自动重启的原因和纠正
  4. 怎么查询显卡hdmi接口版本_HDMI接口基础知识大扫盲
  5. 一文读懂:完整的支付系统整体架构!
  6. CAN 接收邮箱 掩码设置
  7. es 安装拼音分词器 以及使用
  8. 半导体芯片的基本结构
  9. 在线DES加密解密、DES在线加密解密、DES encryption and decryption
  10. 人生性格分析02-60干支日