MySQL联合索引or_MySQL联合索引命中条件
转于:https://blog.csdn.net/claram/article/details/77574600
首先明确:为什么要用联合索引?
对于查询语句“SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2”涉及到两列,这个时候我们一般采用一个联合索引(e1, e3);而不用两个单列索引,这是因为一条查询语句往往应为mysql优化器的关系只用一个索引,就算你有两个索引,他也只用一个;在只用一个的基础之上,联合索引是会比单列索引要快的;
下面讲讲联合索引的使用规则和哪些情况会命中不了联合索引
示例如下。首先创建表:
CREATE TABLE E (e1 INT, e2 VARCHAR(9), e3 INT, PRIMARY KEY(e1, e3));
这样就建立了一个联合索引:e1,e3
测试数据
INSERT INTO E
(e1, e2, e3)
VALUES(1, ‘aa’, 2);
触发联合索引是有条件的:
1、使用联合索引的全部索引键,可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e1=1 AND E.e3=2
2、使用联合索引的前缀部分索引键,如“key_part_1 常量”,可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e1=1
3、使用部分索引键,但不是联合索引的前缀部分,如“key_part_2 常量”,不可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e3=1
4、使用联合索引的全部索引键,但索引键不是AND操作,不可触发索引的使用。
例如:SELECT E.* FROM E WHERE E.e3=2 OR E.e1=1
以上通过explain测试即可看出效果
MySQL联合索引or_MySQL联合索引命中条件相关推荐
- mysql 联合索引 命中_mysql联合索引命中条件
转于:https://blog.csdn.net/claram/article/details/77574600 首先明确:为什么要用联合索引? 对于查询语句"SELECT E.* FROM ...
- MySQL联合索引(abc)命中规则
1.建表 mysql创建一张表,表名:'test_models' id列为 主键,int类型 ,自增 a,b,c,d,e 全部是int(11) 为(a,b,c)添加一个联合索引 index_abc 执 ...
- sql优化之:数据库索引创建原则,or/in/union与索引优化,聚集索引/非聚集索引/联合索引/索引覆盖,MySQL冗余数据的三种方案,MySQL双主一致性架构优化(来源:架构师之路)
一.一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好 ...
- mysql怎样实现先判断后联合_MYSQ创建联合索引,字段的先后顺序,对查询的影响分析...
MYSQ创建联合索引,字段的先后顺序,对查询的影响分析 前言 对于联合索引我们知道,在使用的时候有一个最左前缀的原则,除了这些呢,比如字段放置的位置,会不会对索引的效率产生影响呢? 最左匹配原则 联合 ...
- MySQL 性能分析 之 联合索引(复合索引)实践分析
MySQL 性能分析 之 联合索引(复合索引)实践分析 作为开发者,大家都知道,一个服务器.一个数据库的性能是项目的重中之重,后台架构.写法与数据库设计的好坏往往直接影响到整个项目的性能. 索引:是当 ...
- mysql索引篇之覆盖索引、联合索引、索引下推
覆盖索引 在之前<mysql索引初识>这篇文章中提到过,mysql的innodb引擎通过搜索树方式实现索引,索引类型分为主键索引和二级索引(非主键索引),主键索引树中,叶子结点保存着主键即 ...
- 《MySQL——使用联合索引、覆盖索引,避免临时表的排序操作》
联合索引避免临时表排序 在上一篇笔记(MySQL--order by逻辑(全字段排序与rowid排序))中,讲到查询语句查询多个字段的时候使用order by语句实现返回值是有序的,而order by ...
- 覆盖索引与联合索引_浅析MySQL的索引覆盖和索引下推
写在前面 在MySQL数据库中,索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点,索引就是为了提高数据查询的效率.今天我们来聊聊在MySQL索引优化中两种常见的方式,索引覆盖和 ...
- mysql联合索引和单索引_mysql联合索引跟单列索引的区别
为了提高数据库效率,建索引是家常便饭:那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下. 一.联合索引测试 注: ...
最新文章
- C++_泛型编程与标准库(二)
- webgl值得重视的基础构建
- 智能车竞赛华南赛区湖北文理学院赛点
- 大数据分析工资单:六大行员工再涨薪 人均年薪超26万
- MES系统模块设计之物料控制 Material Control -- 1
- Android 使用MediaPlayer播放assets或者raw目录的音频文件
- 牛客练习赛26 E-树上路径 (树链剖分+线段树)
- 如何在开源社区贡献代码_如何在15分钟内从浏览器获得您的第一个开源贡献
- Azure Table storage 基本用法 -- Azure Storage 之 Table
- php新闻删除功能设计,php原生开发新闻站之删除新闻
- 网络编程之 listen()函数的使用与三次握手的理解
- Apache Tomcat 再爆严重安全漏洞
- Chrome浏览器的版本查看 以及V8 javascript 引擎版本查看
- ASP.Net Mvc 发布网站 (样式+图片问题)
- 烟花散尽漫说无(参考资料)
- 使用TF卡烧录Jetson NX开发板
- linux lefse分析,LEfSe分析,你真的懂了么
- 苹果电脑双系统正确打开方式,虚拟机已经Out了
- TOOD: Task-aligned One-stage Object Detection
- Swift 函数的定义及调用
热门文章
- 为什么要用宏定义函数
- 基于阿里云平台的短信验证码服务API的使用
- oracle不定列,oracle行转列(动态行转不定列)
- 苹果备忘录怎么调字体大小_苹果备忘录误删了怎么恢复?这么好的方法你必须知道...
- 虎书学习笔记4:图形学基础数学(隐式二维直线、隐式二次曲线、二维参数曲线、二维参数直线、二维参数圆)
- 多家游戏交易平台发声,禁止未成年人买号租号
- v-model获取值与.value取值的区别(v-model原理分析)
- 基于android的共享雨伞app
- android序列化讲解
- 苹果小程序上下拉出现留白情况