MySql的执行计划
一。什么是数据库执行计划:
MySQL执行计划是sql语句经过查询优化器后,查询优化器会根据用户的sql语句所包含的字段和内容数量等统计信息,选择出一个执行效率最优(MySQL系统认为最优)的执行计划,然后根据执行计划,调用存储引擎提供的接口,获取数据。执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。
二。执行计划的查看方法:
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。
explain select …………….(在相应的select前面加explain即可)
三。执行计划的查看:



1、SIMPLE:简单的select查询,查询中不包含子查询或者union
2、PRIMARY:查询中包含任何复杂的子部分,最外层查询则被标记为primary
3、SUBQUERY:在select 或 where列表中包含了子查询
4、DERIVED:在from列表中包含的子查询被标记为derived(衍生),mysql或递归执行这些子查询,把结果放在零时表里
5、UNION:若第二个select出现在union之后,则被标记为union;若union包含在from子句的子查询中,外层select将被标记为derived
6、UNION RESULT:从union表获取结果的select







含义:显示MySQL在查询中实际使用的索引,若没有使用索引,显示为NULL
(7)key_len
含义:表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
(8)ref
含义:用于连接查询,表示具体某个表的某列被引用
(9)rows
含义:MySQL根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数,这个值是不准确的,只有参考意义。
(10)Extra
含义:显示一些辅助的额外信息
Using index,表示使用了索引
Using MRR,使用到索引内部排序
Using where,表示通过where条件过滤
Using temporary,表示使用了临时表,常见于分组和排序
Using filesort,表示无法使用索引排序,需要文件排序
eg1:t1.c3列没有索引

eg2:使用索引列t1.c2

四。数据库执行计划的局限性:
EXPLAIN不会告诉你关于触发器、存储过程的信息或用户自定义函数对查询的影响情况;
EXPLAIN不考虑各种Cache(通常人们所说的Cache就是指缓存SRAM。 SRAM叫静态内存,“静态”指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变);
EXPLAIN不能显示MySQL在执行查询时所作的优化工作;
部分统计信息是估算的,并非精确值;
EXPALIN只能解释SELECT操作,其他操作要重写为SELECT后查看执行计划。(mysql5.6的版本已经支持直接查看)
MySql的执行计划的更多相关文章
- Mysql查看执行计划-explain
最近生产环境有一些查询较慢,需要优化,于是先进行业务确认查询条件是否可以优化,不行再进行sql优化,于是学习了下Mysql查看执行计划. 语法 explain <sql语句> 例如: e ...
- Mysql查看执行计划
EXPLAIN(小写explain)显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. EXPLAIN + sql语句可以查看mysql的执行 ...
- MySQL数据库执行计划(简单版)
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库执行计划简单版时间:2019年2月25日内容:MySQL数据库执行计划简单版重点:MySQL ...
- Mysql explain执行计划
EXPLAIN(小写explain)显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. EXPLAIN + sql语句可以查看mysql的执行 ...
- 15、简述MySQL的执行计划?
具体的Mysql的执行计划,请参考下面的链接: MySQL_执行计划详细说明
- MySQL性能分析, mysql explain执行计划详解
MySQL性能分析 MySQL性能分析及explain用法的知识是本文我们主要要介绍的内容,接下来就让我们通过一些实际的例子来介绍这一过程,希望能够对您有所帮助. 1.使用explain语句去查看分析 ...
- 【夯实Mysql基础】mysql explain执行计划详解
原文地址 1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. 2).select_type列常见的有: A ...
- mysql explain执行计划详解
1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. 2).select_type列常见的有: A:simp ...
- mysql重点--执行计划
explain SQL: 在sql语句前面加explain实现"执行计划"的功能.功能是比较准确的显示将要执行这条sql语句的运行状况. select_simple 是查询类型:t ...
- MYSQL EXPLAIN执行计划命令详解(支持更新中)
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是根据官网中的每个一点来翻译.举例.验证的:英语不好,所 ...
随机推荐
- 2019 百合佳缘java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.百合佳缘等公司offer,岗位是Java后端开发,因为发展原因最终选择去了百合佳缘,入职一年时间了,也成为了面 ...
- C# 查看系统进程
//使用前需要引用 using System.Diagnostics; var processList = Process.GetProcesses().ToList();
- 去世父亲在儿子手机中复活,这可能是最温暖的一个AI
美国青年James Vlahos的父亲不幸因病去世,但聊以慰藉的是,现在他每天还能和父亲聊天并收到回复,而且父亲在回复中的口吻与语气,就仿佛还「活着」一样. 这并不是恐怖片剧情,而是科技的魔幻力量:回 ...
- Android-----实现给图片添加字体
实现给图片添加字体,图片旋转功能:xml布局文件内容如下,一个简单的ImageView布局 <com.example.hsjgapp.RotateImageView //这里存放要展示的图片 a ...
- Linux之ubuntu下载
(转载) ubuntu 16.04国内下载地址: 中科大源 http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/ 阿里云开源镜像站 http://mirr ...
- 洛谷 P1330 封锁阳光大学题解
题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由N个点构成的无向图,N个点之间由M ...
- splunk dga
https://splunkbase.splunk.com/app/3559/ 详细参考: https://www.slideshare.net/Splunk/using-machine-learni ...
- php迭代器模式(iterator pattern)
... <?php /* The iterator pattern is used to traverse a container and access its elements. In oth ...
- jenkins构建邮件自动发送,测试邮件发送成功,构建项目邮件发送不成功的问题
提示问题: Connection error sending email,retrying once more in 10 seconds…… Connection error sending ema ...
- Appium连接夜神模拟器,模拟手势点击(tap)
# -*- coding:utf-8 -*- from appium import webdriver from time import sleep desired_caps ={ 'platform ...