MySQL执行计划 EXPLAIN参数
MySQL执行计划参数详解
MySQL数据库中,在SELECT查询语句前边加上“EXPLAIN”或者“DESC”关键字,即可查看该查询语句的执行计划,分析执行计划是优化慢查询的重要手段。如:
EXPLAIN SELECT * FROM school; DESC SELECT * FROM school;
执行结果:
接下来对这10个参数进行简单解释:
1、id:在整个查询中SELECT的位置;
2、select_type:查询的类型,包括没有子查询的简单查询、UNION、子查询、外部查询、外部查询中的子查询或FROM语句中的子查询等;
3、table:所查询的表名;
4、type:连接如何执行的情况。这里存在很多值,范围从const(最佳)到ALL(最差);
5、possible_keys:为了提高查询速度,在MySQL中可以使用的索引;
6、key:实际使用的索引;
7、key_len:索引的长度;
8、ref:使用哪一列或常数与key一起从表中选择行;
9、rows:MySQL需要在相应表中为了成功进行查询,进行检验的行的数量。为了得出总行数,MySQL必须扫描处理整个查询,再乘以每个表的行值;
10、Extra:其他信息,涉及MySQL如何处理查询,比如说,使用WHERE语句、使用一个索引、利用一个临时表等;
其中select_type可以是:
SIMPLE
PRIMARY
UNION
DEPENDENT UNION
UNION RESULT
SUBQUERY
DEPENDENT SUBQUERY
DERIVED
type可以是:
system
const
eq_ref
ref
ref_or_null
index_merge
unique_subquery
index_subquery
range
index
ALL
Extra可以是:
Distinct
Not exists
range checked for each record (index map
Using filesort
Using index
Using temporary
Using where
Using sort_union(...), Using union(...), Using intersect(...)
Using index for group-by
最新文章
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
- Android菜鸟成长记12 -- ORMLite的简单使用
- [BZOJ1854][Scoi2010]游戏(二分图匹配/并查集)
- ArcObject10.1降级至10.0
- JAVA EE(简述)
- Centos更换yum库镜像
- PHP javascript 值互相引用(不用刷新页面)
- LightOJ_1248 Dice (III)
- 使用ssh对服务器进行登录
- HTTP学习笔记6-请求报头
- 如何:对 Web 窗体使用路由
- ThinkPHP第十二天(Import导入第三方类库方法,独立分组文件夹结构)
- BZOJ 3438: 小M的作物( 最小割 )
- HTML 速成
- 学习笔记——享元模式Flyweight
- 微信小程序下拉刷新和上拉加载
- 第1阶段——关于u-boot目标文件start.o中.globl 和.balignl理解(3)
- 剑指Offer——京东实习笔试题汇总
- Java 获取指定日期范围内的每个月,每季度,每一年
- github访问很慢解决方案