以前学习这一块的时候,是说:假设建立了联合索引a+b,那么查询语句也一定要是这个顺序才能应用该索引。

那么实际是怎样呢,经过mysql这么多次版本升级,相信mysql已经给我们做了某些优化。

下面是我的实测结果:(5.7版本)

step1:反顺序也是可以应用索引的。

step2:正常顺序更加没问题

step3:在有单列索引情况下,竟然优先使用了联合索引

step4:将idx_name_del中的索引顺序换了下,把name换前面。

step5:将idx_pid_del中的索引顺序换了下,把pid换前面。这下优化器显示:使用单列索引。

总结:

结论1:在有联合索引时,顺序已不再要紧,mysql内部已经做了优化,只要是联合索引的那几个条件与where子句中的条件匹配,都能应用对应的联合索引。

结论2:在有联合索引(a+b)和单列索引a同时存在时,通过a条件的查询会优先使用联合索引。

结论3:在有联合索引(b+a)和单列索引a同时存在时,通过a条件的查询会使用单列索引,联合查询不会出现在possible keys中。

mysql 非等值条件 索引_mysql 索引学习--多条件等值查询,顺序不同也能应用联合索引啦...相关推荐

  1. mysql 非自然月统计_MySQL性能优化 — 实践篇1

    点赞再看,养成习惯,微信搜一搜[一角钱小助手]关注更多原创技术文章. 本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 MySQL索引底层数据结构与算 ...

  2. mysql数据库j电子课件_mysql数据库(学习课件).ppt

    mysql数据库(学习课件).ppt 还剩 149页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 数据库之路未 ...

  3. mysql 递归查找父节点_MYSQL递归查询,根据子类ID查询所有父类(最全)

    数据表结构 id    name  parent_id 1        A        0 2        B        1 3        C        1 4        D   ...

  4. mysql执行语句后回退_MySQL命令学习笔记(八)

    1 安全管理 1.1 访问控制 MySQL服务器的安全基础是: 用户应该对他们需要的数据具有适当的访问权,既不能多也不能少 1.2 管理用户 MySQL用户账号和信息存储在名为mysql的MySQL数 ...

  5. mysql学时用什么类型_MYSQL数据库学习----MYSQL数据类型

    一切数据在计算中都是以二进制形式存储,而8位二进制数就表示1个字节. 通常我们说一种数据类型占多少字节,就是说这种数据类型可以表示多少位的二进制数,同时二进制数可以转换为十进制数,进而得到这种数据类型 ...

  6. mysql统计数量函数方法_mySql关于统计数量的SQL查询操作

    mySql关于统计数量的SQL查询操作,状态,订单,语句,函数,数量 mySql关于统计数量的SQL查询操作 易采站长站,站长之家为您整理了mySql关于统计数量的SQL查询操作的相关内容. 我就废话 ...

  7. mysql 不通过关联查询表_mysql中多表不关联查询的实现方法详解

    下面小编就为大家带来一篇浅谈mysql中多表不关联查询的实现方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 大家在使用MySQL查询时正常是直接一个表的查询,要不然 ...

  8. mysql开启binlog启动慢_mysql配置开启binlog与慢查询日志功能

    备注:mysql有以下几种日志(本文罗列了mysql相关的日志说明,请结合实际需要配置开启): 错误日志: -log-err 查询日志: -log (可选) 慢查询日志: -log-slow-quer ...

  9. python条件语句练习题_python学习-7 条件语句 while循环 + 练习题

    1.死循环 while 1 == 1: print('ok') 结果是一直循环 2.循环 count = 0 while count < 10: print(count) count = cou ...

最新文章

  1. mysql_08_子查询
  2. bzoj3339 Rmq Problem
  3. 分布式事务Seata原理
  4. command not found: django-admin.py
  5. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...
  6. python七段数码管的详解,Python入门基础:七段数码管绘制
  7. Linux 串口编程一 一些背景
  8. 每天一个linux命令(54):ping命令
  9. django-动漫节目列表,后台的操作
  10. 固高控制卡学习(vs2010,c++)(之一)
  11. win10wifi多了数字_Win10 技巧:如何修改有线 / WiFi 网络优先级?
  12. mysql start with_mysql 实现 start with
  13. 实时PPP多系统组合与单系统解算ZTD和Clock差异
  14. 2017杭州云栖大会精华PPT
  15. 关于移动应用用户体验设计的一些体会
  16. # Alpha冲刺之事后诸葛亮
  17. UIP协议栈笔记·一
  18. 数字平原maya制作写实科幻场景
  19. cent os 挂盘
  20. 三星s20Android11怎么退回10,三星已经开始在GALAXY S20+上测试安卓11系统

热门文章

  1. 大神们请看python日期是这样转换的
  2. Ts + React + Mobx 实现移动端浏览器控制台
  3. 使用vue的mixins混入实现对正在编辑的页面离开时提示
  4. object dection资源
  5. DRP问题集结(一)-Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory...
  6. 关于captive portal
  7. php异常处理技术,顶级异常处理器
  8. Windows phone 7 Mango 更新发布会Session 整理
  9. SparkStreaming官方示例程序运行方式
  10. Android_(消息提示)多种使用Toast的消息提示