MySQL执行计划参数详解

MySQL数据库中,在SELECT查询语句前边加上“EXPLAIN”或者“DESC”关键字,即可查看该查询语句的执行计划,分析执行计划是优化慢查询的重要手段。如:

EXPLAIN SELECT * FROM school; DESC    SELECT * FROM school;

执行结果:

执行计划参数.png

接下来对这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

最新文章

  1. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
  2. Android菜鸟成长记12 -- ORMLite的简单使用
  3. [BZOJ1854][Scoi2010]游戏(二分图匹配/并查集)
  4. ArcObject10.1降级至10.0
  5. JAVA EE(简述)
  6. Centos更换yum库镜像
  7. PHP javascript 值互相引用(不用刷新页面)
  8. LightOJ_1248 Dice (III)
  9. 使用ssh对服务器进行登录
  10. HTTP学习笔记6-请求报头
  11. 如何:对 Web 窗体使用路由
  12. ThinkPHP第十二天(Import导入第三方类库方法,独立分组文件夹结构)
  13. BZOJ 3438: 小M的作物( 最小割 )
  14. HTML 速成
  15. 学习笔记——享元模式Flyweight
  16. 微信小程序下拉刷新和上拉加载
  17. 第1阶段——关于u-boot目标文件start.o中.globl 和.balignl理解(3)
  18. 剑指Offer——京东实习笔试题汇总
  19. Java 获取指定日期范围内的每个月,每季度,每一年
  20. github访问很慢解决方案

热门文章

  1. HTML 页面加载动画效果
  2. sitecustomize.py 用法
  3. HttpContext.Current.Session=null问题
  4. 用Python和Django实现多用户博客系统(二)——UUBlog
  5. Swift2.0新特性
  6. IOS公司开发者账号申请详细教程--1 备用
  7. Log4j与common-logging
  8. 使用ImageMagick和Tesseract进行简单数字图像识别
  9. Stanford Parser学习入门(3)-标记
  10. 不可忽视的 .NET 应用5大性能问题