ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql 重新整理——索引优化一个简单的案例 [十一]

2020-06-14 22:53:14  阅读:232  来源: 互联网

标签:name 索引 t4 no t2 t3 重新整理 emp 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越大越先执行。

那么看一下吧:

  1. 首先是4,加载执行t2。这里我们可以看出其实mysql运行是的下的代码,而不是union上面的。

  2. 然后是2,这时候也就是去加载t4,执行子查询,子查询发现了需要表t1,其实是t3,但是t3是临时表在这里没有显示。

  3. 最后去加载t1进行查询,将结果返回给t4,t4执行完返回结果。

  4. 最后一步就是合并结果。

标签:name,索引,t4,no,t2,t3,重新整理,emp,mysql
来源: https://www.cnblogs.com/aoximin/p/13123858.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有