--联合索引查询第一个、第二个参数(走索引)

explain select* from emp where ENAME = 'wang' and JOB

单例索引:在数据库的单例上建立的索引。

联合索引:在数据库的多列上建立的索引。

两者使用区别:

如果在一个大量的数据库表中的需要进行查询的话,仅仅只是针对某一个条件进行查询的话,建立单例索引就能满足;

如果每次查询总是多个条件进行and连接 查询的时候,可以建立联合索引,多列单索引查询只会第一个起作用(mysql遵从最左原则);但是需要注意where后面的查询条件的顺序,例如建立的联合索引为 字段a,字段b,字段c;则查询where后面的条件必须包括字段a,一般的情况下都会按照联合索引的顺序填写where查询条件,节省mysql的自动调整的开销

如果条件是进行 or连接 查询的时候,此时联合索引会失效,这个时候就可以使用多个单列索引,此时是多个索引合并Using union(comm,deptNo); Using where,但是这种情况下索引也要酌情建立,索引太多不利于维护

以下示例:验证

-- 建立了单例索引COMM、DEPTNO;复合索引ENAME,JOB,SAL

--联合索引查询第一个参数(走索引)

explain select* from emp where ENAME = 'wang';

View Code

--联合索引查询第一个、第二个参数(走索引)

explain select* from emp where ENAME = 'wang' and JOB = '1'

--联合索引查询第一个、第二个、第三个参数(走索引)

explain select* from emp where ENAME = 'wang' and JOB = '1' and SAL = '1'

--联合索引查询第一个、第三个参数(走索引,有额外开销)

explain select* from emp where ENAME = 'wang' and SAL = '1'

--联合索引查询第三个参数、第一个参数(走索引,会有额外开销)

explain select* from emp where SAL = '1' and ENAME = 'wang'

--联合索引查询第二个、第三个参数(不会走联合索引)

explain select* from emp where JOB = '1' and SAL = '1'

--联合索引 or查询 第一个、第二个参数(不会走联合索引)

explain select* from emp where ENAME = 'wang' or JOB = '1'

--使用两个单例索引一块查询(会进行合并)

explain select* from emp where COMM = '1' or DEPTNO = '1'

mysql 联合索引 单个索引_mysql的单例索引和联合索引相关推荐

  1. mysql 各表charset不同_MySQL表字段字符集不同导致的索引失效问题

    1. 概述 昨天在一位同学的MySQL机器上面发现了这样一个问题,MySQL两张表做left join时,执行计划里面显示有一张表使用了全表扫描,扫描全表近100万行记录,大并发的这样的SQL过来数据 ...

  2. in会让mysql索引失效吗_mysql的in会不会让索引失效?

    mysql的in会让索引失效吗?不会! 看结果: mysql> desc select * from tb_province where name in ('lily3', 'lily2', ' ...

  3. mysql如何修改学生表_MySQL 详细单表增删改查crud语句

    MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范 ...

  4. mysql左连接去重查询_mysql之单表查询、多表查询

    mysql查询 单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[,...,字段n])] values (数据1[,...,数据n])[, ...

  5. mysql普通索引自增_mysql中联合索引中的自增列的增长策略

    <深入理解MySQL>中一段介绍MyISAM存储引擎中自动增长列的示例,如下 1 mysql>create table autoincre_demo2 -> (d1 small ...

  6. mysql复合索引使用场景_mysql复合索引(联合索引)的使用场景

    什么是联合索引? 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支 ...

  7. mysql唯一索引和联合索引的区别_mysql中,索引,主键,唯一索引,联合索引的区别...

    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针. 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度. ...

  8. mysql添加索引后查询先用索引吗_mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?...

    满意答案 llt1711 2014.06.20 采纳率:49%    等级:9 已帮助:614人 MYSQL创建索引对索引使用方式分两种: 1 由数据库查询优化器自动判断否使用索引: 2 用户写SQL ...

  9. mysql 联合主键优缺点_mysql索引的类型和优缺点

    mysql索引的类型和优缺点 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针. 注:[1]索引不是万能的!索引可以加快数据检索操作,但 ...

最新文章

  1. 自行车为什么前轮和后轮受到的摩擦力相反呢 自行车前轮后轮转动方向一样 自行车运动原理...
  2. 如何根据用户权限屏蔽或显示SAP的订单中的成本显示
  3. DL之SqueezeNet:SqueezeNet算法的架构详解
  4. java wcf 未提供用户名_WCF的用户名密码认证
  5. JDK source 之 ArrayList 需要注意事项
  6. 浅谈Spring的AOP实现-代理机制
  7. 接口测试的时候如何生成随机数据进行测试
  8. 杂项:Java un
  9. ppt制作弹跳的小球动画效果_你不能错过的PPT制作酷炫弹跳的小球教程
  10. 台式机鼠标失灵打开计算机,台式电脑鼠标没反应是怎么回事
  11. python 求平方
  12. Matlab:i 和j其实是MATLAB内置函数(built-in function)
  13. 6岁女孩出口之乎者也 用《论语》典故批评妈妈
  14. python基础之文件处理
  15. PHP判断中文字符串的长度和字节长度
  16. 阿里企业邮箱526 Authentication failure[0]
  17. 看《墨攻》理解IoC
  18. 建立自己的图像数据集
  19. 【Codeforces Round #548(Div. 2)】Edgy Trees(数学+bfs求连通块)
  20. html 状态栏显示,网页屏蔽状态栏 打开的网页怎么隐藏浏览器的状态栏

热门文章

  1. linux 系统pwd的作用,linux系统pwd命令的作用
  2. C/C++语言使用技巧(三十三):强大的数学计算库gsl与算法实现
  3. 亲测英皇CMS影视网站系统源码+多种模板/自带采集/支持APP
  4. 宏函数(宏定义)使用注意
  5. CSS3新特性有哪些?
  6. python 字符串分割_Python 字符串分割的方法
  7. print格式化输出
  8. iOS控制系统Ipod
  9. Git用户名/密码/邮箱,及设置git配置
  10. 如何用计算机算出饺子,谢冕《饺子记盛》阅读练习及答案(2018年江苏省苏州市中考)...