mysql 重新整理——索引优化一个简单的案例 [十一]
前言
经过了前面的一系列理论,那么用一个例子去看一下吧。
正文
EXPLAIN SELECT t3.emp_no,t3.first_name,(select t4.last_name from temployees t4 where t4.emp_no=t3.emp_no) AS last_name
from (select t1.emp_no,t1.first_name from temployees t1 where t1.emp_no in (10001,10002)) t3
where t3.emp_no=10002
UNION
select t2.emp_no,t2.first_name,t2.last_name
from temployees t2
where t2.emp_no=10001
这是一段很诡异的代码,没人会这样写,在此只是作为分析处理。
我们看下结果:

那么按照我们前面的分析,来看一下它的执行顺序是啥,暂时就不去看它的一个索引利用率了。
在该系列九中有一个结论,当id越大越先执行。
那么看一下吧:
首先是4,加载执行t2。这里我们可以看出其实mysql运行是的下的代码,而不是union上面的。
然后是2,这时候也就是去加载t4,执行子查询,子查询发现了需要表t1,其实是t3,但是t3是临时表在这里没有显示。
最后去加载t1进行查询,将结果返回给t4,t4执行完返回结果。
最后一步就是合并结果。
mysql 重新整理——索引优化一个简单的案例 [十一]的更多相关文章
- MySql在建立索引优化时需要注意的问题
MySql在建立索引优化时需要注意的问题 设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得 ...
- MySQL中的索引优化
MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 过多的使用索引将会造成滥用.因此索引也会有它的缺点.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 ...
- 一个简单的案例带你入门Dubbo分布式框架
相信有很多小伙伴都知道,dubbo是一个分布式.高性能.透明化的RPC服务框架,提供服务自动注册.自动发现等高效服务治理方案,dubbo的中文文档也是非常全的,中文文档可以参考这里dubbo.io.由 ...
- MySQL系列(六)--索引优化
在进行数据库查询的时候,索引是非常重要的,当然前提是达到一定的数据量.索引就像字典一样,通过偏旁部首来快速定位,而不是一页页 的慢慢找. 索引依赖存储引擎层实现,所以支持的索引类型和存储引擎相关,同一 ...
- MySQL 5.6.35 索引优化导致的死锁案例解析
一.背景 随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验.订单库存扣减.售后库存释放等业务.在上线之前我们对于核心接口进行了压测,压测过程中出现了 MySQL ...
- mysql 高级和 索引优化,目的:查的好,查的快,性能好
1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...
- MySQL如何利用索引优化ORDER BY排序语句
MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...
- MySQL如何利用索引优化ORDER BY排序语句 【转载】
本文转载自:http://blog.csdn.net/ryb7899/article/details/5580624 .感谢相关作者. MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执 ...
- MySQL 多列索引优化小记
MySQL 5.6.30 问题背景 由于爬虫抓取的数据不断增多,这两天在不断对数据库以及查询语句进行优化,其中一个表结构如下: CREATE TABLE `newspaper_article` ( ` ...
- MySQL如何利用索引优化ORDER BY排序语
MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...
随机推荐
- idea技巧-自定义后缀补全
Idea技巧-Postfix Completion 在idea中可以使用.xxx进行后缀补全 比如.sout 如何自定义后缀补全? 比如.log 在idea中打开设置 File | Settings ...
- 搭建一个Java项目可直接拿去使用的通用工具类
1.通用枚举类 import lombok.Getter; /** * @Description 状态码定义约束,共6位数,前三位代表服务,后3位代表接口 * 比如 商品服务210,购物车是220.用 ...
- 【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
问题描述 Power BI获取SharePoint List列表作为数据源.但是在数据源中,有Table属性值,有List属性值.如果直接展开,则会形成"笛卡尔"集的效果,变成N多 ...
- 20个Python random模块的代码示例
本文分享自华为云社区<Python随机数探秘:深入解析random模块的神奇之处>,作者:柠檬味拥抱. 标准库random函数大全:探索Python中的随机数生成 随机数在计算机科学和数据 ...
- 幕布 和 xmind 的大纲模式 都很不错
幕布 和 xmind 的大纲模式 都很不错 xmind 思维导图 ctrl+a 折叠所有子分支 然后就能一级一级展开 最后选择用 xmind的大纲模式,因为免费. 幕布收费,限300个节点,小数据量的 ...
- [STM32 HAL]一种可能不错的DMA处理串口数据方案
[STM32 HAL]一种可能不错的DMA处理数据方案 原文链接:https://blog.csdn.net/youmeichifan/article/details/51750435?spm=100 ...
- 如何在UE4中播放本地视频文件?
在UE4中有一套媒体框架方法,它根据视频源的不同,对应的播放方式也不一样,支持的视频源有本地视频文件.影像序列.视频流.实时视频截图.播放形式可选择在场景内的静态网格上播放或者以UI的形式播放.本文主 ...
- KingbaseES V8R6 Deallocate 语句使用说明
用途 DEALLOCATE被用来释放一个之前PREPARE好的SQL语句.如果不显式地释放一个PREPARE语句,那么会话结束时会释放它. prepare语句类似oracle的绑定变量 绑定过程: 1 ...
- sql语句TRUNCATE 清空表数据
清空表数据 TRUNCATE TABLE zzsfp_hwmx;
- C++简单实现vector
向量 向量是序列容器,表示可以更改大小的数组. 就像数组一样,向量对其元素使用连续的存储位置,这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素,并且与数组一样高效.但与数组不同的是,它们的 ...