前言

在七种介绍了explain这东西,那么具体来看下它是如何来运行的吧。

正文

id

来看一条语句:EXPLAIN select * from departments,dept_emp,employees

当id相同的时候:代表在同一队列里面加载,就是说他们加载不是并发的,而是有顺序的。

然后一个问题,就是说我们写的顺序是:departments,dept_emp,employees ,然後你看他们的加载顺序是:departments,employees ,dept_emp。

然后看另外一条语句:

explain SELECT * FROM temployees  WHERE emp_no= (
SELECT dept_emp.emp_no FROM dept_emp WHERE dept_emp.dept_no=( SELECT departments.dept_no FROM departments WHERE departments.dept_name="Finance"
)
)

在此注明,上面表的东西呢,是mysql 官方测试表。

那么看一下:

就算我们不看explain,其实我们也知道肯定是执行:departments,dept_emp,employees 。

所以是id越大越先执行。

总结一下:如果id相同,从上至下按照顺序执行,如果id不同,越大越先执行。

select_type

这个查询可以告诉我们到底是什么样的查询:

查询的类型,主要用于区别普通查询、联合查询、子查询等复杂的查询。

这里先列一下有哪些查询:

1.simple:简单的select,查询中不包含子查询或者union

2.primary:那个包含任何复杂的子查询,最外层查询则被标记为这个。

可以参考我前面这个图:

3.subquery:在select 或者 where 列表中包含子查询

4.derived 在from 中包含的子查询被标记为derived,mysql会递归执行这些子查询,把结果放在临时表中。

5.union,如果第二个select 出现在union之后,则会标记为union。

如果union 包含在from 子句中的子查询中,外层的select 被标记为:derived。

6.union result 从union获取结果的select。

table

table 就非常简单了,就是表。

后语

后面补齐。

mysql 重新整理——索引优化explain字段介绍一 [九]的更多相关文章

  1. MySQL中的索引优化

    MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 过多的使用索引将会造成滥用.因此索引也会有它的缺点.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 ...

  2. MySql在建立索引优化时需要注意的问题

    MySql在建立索引优化时需要注意的问题 设计好MySql的索引可以让你的数据库飞起来,大大的提高数据库效率.设计MySql索引的时候有一下几点注意: 1,创建索引 对于查询占主要的应用来说,索引显得 ...

  3. 一本彻底搞懂MySQL索引优化EXPLAIN百科全书

    1.MySQL逻辑架构 日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢? 先来整体看下MySQL逻辑架构图: M ...

  4. MySQL系列(六)--索引优化

    在进行数据库查询的时候,索引是非常重要的,当然前提是达到一定的数据量.索引就像字典一样,通过偏旁部首来快速定位,而不是一页页 的慢慢找. 索引依赖存储引擎层实现,所以支持的索引类型和存储引擎相关,同一 ...

  5. mysql 高级和 索引优化,目的:查的好,查的快,性能好

    1-事物隔离级别: 更新丢失, 并发情况下,对同一字段进行更新,就会出现更新丢失,采用乐观锁,比较版本号或时间戳可解决 读未提交 解决了更新丢失但是会引起脏读, 二个session.sessionA中 ...

  6. mysql 单表索引优化

    建表语句 CREATE TABLE IF NOT EXISTS `article` ( `id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMEN ...

  7. 【MySQL 高级】索引优化分析

    MySQL高级 索引优化分析 SQL 的效率问题 出现性能下降,SQL 执行慢,执行时间长,等待时间长等情况,可能的原因有: 查询语句写的不好 索引失效 单值索引:在 user 表中给 name 属性 ...

  8. MySQL如何利用索引优化ORDER BY排序语句

    MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...

  9. MySQL如何利用索引优化ORDER BY排序语句 【转载】

    本文转载自:http://blog.csdn.net/ryb7899/article/details/5580624  .感谢相关作者. MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执 ...

  10. MySQL如何利用索引优化ORDER BY排序语

    MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度. MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作. 通 ...

随机推荐

  1. C++ //vector容器嵌套容器

    1 //vector容器嵌套容器 2 #include <iostream> 3 #include <string> 4 #include<fstream> 5 # ...

  2. java中StringBuffer与 StringBuilder 类

    目录 创建 StringBuffer 类 追加字符串 替换字符 反转字符串 删除字符串 StringBuffer 方法 在 Java 中,除了通过 String 类创建和处理字符串之外,还可以使用 S ...

  3. TLS原理与实践(三)tls1.3

    主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 tls1.2作为主流的网路安全协议,被广泛应用,但tls1.2仍 ...

  4. 通过 TCPView KPKIService.exe 删掉 (原来是单点登录的中间件)

    叫 统一安全中间件,就是个第三方做的key的安全检查,谁知道是哪年装的 (原来是单点登录的中间件) 资料 https://baijiahao.baidu.com/s?id=17173842191483 ...

  5. 关于vscode的复制粘贴的问题

    有的是因为安装了vim的插件,卸掉即可.或者直接在快捷键设置里面直接改变复制粘贴的快捷键!

  6. shell脚本中将 IFS (Internal Field Separator 内部字段分隔符)替换为换行符

    将 IFS 中的空白符(换行.制表符.空格)修改为仅包含换行 IFS 是shell中的内部变量,在使用 for var in var_list;do use $var do something don ...

  7. opus编解码的特色和优点

    概念原理   Opus是一个有损音频压缩的数字音频编码格式,由Xiph.Org基金会开发,之后由互联网工程任务组(IETF)进行标准化,目标是希望用单一格式包含声音和语音,取代Speex和Vorbis ...

  8. linux下几种快速清空文件内容的方法

    [root@iamzken ~] : > filename [root@iamzken ~] > filename [root@iamzken ~] echo "" & ...

  9. Locust 断言的实现?

    一.检查点的方式有哪些: 主要是python 内置的assert 断言(自动断言)还有locust 中的catch_response 断言(手动断言):那么这两者之间有什么区别呢? 其实主要区别在与生 ...

  10. 基于PyQGIS实现遥感影像下载

    1. 引言 之前的文章:QGIS中下载遥感影像的Python代码片段 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com),记述了在 QGIS 的 Python Console 中使用Py ...