mysql 联合索引 单个索引_mysql的单例索引和联合索引
--联合索引查询第一个、第二个参数(走索引)
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的单例索引和联合索引相关推荐
- mysql 各表charset不同_MySQL表字段字符集不同导致的索引失效问题
1. 概述 昨天在一位同学的MySQL机器上面发现了这样一个问题,MySQL两张表做left join时,执行计划里面显示有一张表使用了全表扫描,扫描全表近100万行记录,大并发的这样的SQL过来数据 ...
- in会让mysql索引失效吗_mysql的in会不会让索引失效?
mysql的in会让索引失效吗?不会! 看结果: mysql> desc select * from tb_province where name in ('lily3', 'lily2', ' ...
- mysql如何修改学生表_MySQL 详细单表增删改查crud语句
MySQL 增删改查语句 1.创建练习表 这里练习表没有满足三范式 第一范式(又称 1NF):保证每列的原子性 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性.满足第一范 ...
- mysql左连接去重查询_mysql之单表查询、多表查询
mysql查询 单表查询 """ 增: insert [into] [数据库名.]表名[(字段1[,...,字段n])] values (数据1[,...,数据n])[, ...
- mysql普通索引自增_mysql中联合索引中的自增列的增长策略
<深入理解MySQL>中一段介绍MyISAM存储引擎中自动增长列的示例,如下 1 mysql>create table autoincre_demo2 -> (d1 small ...
- mysql复合索引使用场景_mysql复合索引(联合索引)的使用场景
什么是联合索引? 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支 ...
- mysql唯一索引和联合索引的区别_mysql中,索引,主键,唯一索引,联合索引的区别...
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针. 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度. ...
- mysql添加索引后查询先用索引吗_mysql 添加索引后 在查询的时候是mysql就自动从索引里面查询了。还是查询的时候有单 独的参数查询索引?...
满意答案 llt1711 2014.06.20 采纳率:49% 等级:9 已帮助:614人 MYSQL创建索引对索引使用方式分两种: 1 由数据库查询优化器自动判断否使用索引: 2 用户写SQL ...
- mysql 联合主键优缺点_mysql索引的类型和优缺点
mysql索引的类型和优缺点 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针. 注:[1]索引不是万能的!索引可以加快数据检索操作,但 ...
最新文章
- 自行车为什么前轮和后轮受到的摩擦力相反呢 自行车前轮后轮转动方向一样 自行车运动原理...
- 如何根据用户权限屏蔽或显示SAP的订单中的成本显示
- DL之SqueezeNet:SqueezeNet算法的架构详解
- java wcf 未提供用户名_WCF的用户名密码认证
- JDK source 之 ArrayList 需要注意事项
- 浅谈Spring的AOP实现-代理机制
- 接口测试的时候如何生成随机数据进行测试
- 杂项:Java un
- ppt制作弹跳的小球动画效果_你不能错过的PPT制作酷炫弹跳的小球教程
- 台式机鼠标失灵打开计算机,台式电脑鼠标没反应是怎么回事
- python 求平方
- Matlab:i 和j其实是MATLAB内置函数(built-in function)
- 6岁女孩出口之乎者也 用《论语》典故批评妈妈
- python基础之文件处理
- PHP判断中文字符串的长度和字节长度
- 阿里企业邮箱526 Authentication failure[0]
- 看《墨攻》理解IoC
- 建立自己的图像数据集
- 【Codeforces Round #548(Div. 2)】Edgy Trees(数学+bfs求连通块)
- html 状态栏显示,网页屏蔽状态栏 打开的网页怎么隐藏浏览器的状态栏
热门文章
- linux 系统pwd的作用,linux系统pwd命令的作用
- C/C++语言使用技巧(三十三):强大的数学计算库gsl与算法实现
- 亲测英皇CMS影视网站系统源码+多种模板/自带采集/支持APP
- 宏函数(宏定义)使用注意
- CSS3新特性有哪些?
- python 字符串分割_Python 字符串分割的方法
- print格式化输出
- iOS控制系统Ipod
- Git用户名/密码/邮箱,及设置git配置
- 如何用计算机算出饺子,谢冕《饺子记盛》阅读练习及答案(2018年江苏省苏州市中考)...