explain就是SQL的执行计划,通过执行计划,我们可以了解sql的执行当中的一些细节。
使用方法为在SQL语句前加explain
得到结果如下:

mysql> explain select id,c1 from t1 where c1=4398825;
+----+-------------+-------+------+---------------+------+---------+------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+---------+-------------+
| 1 | SIMPLE | t1 | ALL | NULL | NULL | NULL | NULL | 4992210 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+---------+-------------+
1 row in set (0.00 sec)

各列功能如下:

  • id: 按照sql语法解析后分层后的编号,可能重复
  • select_type:
    • SIMPLE,简单的select查询,不使用union及子查询
    • PRIMARY,最外层的select查询
    • UNION,UNION 中的第二个或随后的 select 查询,不依赖于外部查询的结果集
    • DEPENDENT UNION,UNION 中的第二个或随后的 select 查询,依赖于外部查询的结果集
    • SUBQUERY,子查询中的第一个 select 查询,不依赖于外部查询的结果集
    • DEPENDENT SUBQUERY,子查询中的第一个 select 查询,依赖于外部查询的结果集
    • DERIVED,用于 from子句里有子查询的情况。 MySQL会递归执行这些子查询, 把结果放在临时表里。
    • UNCACHEABLE SUBQUERY,结果集不能被缓存的子查询,必须重新为外层查询的每一行进行评估。
    • UNCACHEABLE UNION,UNION 中的第二个或随后的 select 查询,属于不可缓存的子查询
  • table:涉及的表,如果SQL中表有赋别名,这里出现的是别名
  • type:
    • system,从系统表读一行。这是const联接类型的一个特例。
    • const,表最多有一个匹配行,它将在查询开始时被读取。因为仅有一行,在这行的列值可被优化器剩余部分认为是常数。const表很快,因为它们只读取一次!
    • eq_ref,查询条件为等于
    • ref,条件查询不等于
    • ref_or_null,同ref(条件查询),包含NULL值的行。
    • index_merge,索引联合查询
    • unique_subquery,利用唯一索引进行子查询
    • index_subquery,用非唯一索引进行子查询
    • range,索引范围扫描
    • index,索引全扫描
    • ALL,全表扫描。
  • possible_keys:可能使用的索引
  • key:sql中使用的索引
  • key_len:索引长度
  • ref:使用哪个列或常数与key一起从表中选择行。
  • rows:显示MYSQL执行查询的行数,简单且重要,数值越大越不好,说明没有用好索引
  • Extra:该列包含MySQL解决查询的详细信息。
    • Distinct,去重,返回第一个满足条件的值
    • Not exists 使用not exists查询
    • Range checked for each record,有索引,但索引选择率很低
    • Using filesort,有序查询
    • Using index,索引全扫描
    • Using index condition,索引查询
    • Using temporary,临表表检索
    • Using where,where条件查询
    • Using sort_union,有序合并查询
    • Using union,合并查询
    • Using intersect,索引交叉合并
    • Impossible WHERE noticed after reading const tables,读取const tables,查询结果为空
    • No tables used,没有使用表
    • Using join buffer (Block Nested Loop),使用join buffer(BNL算法)
    • Using MRR(Multi-Range Read ) 使用辅助索引进行多范围读

转载自:https://segmentfault.com/a/1190000006726948#articleHeader14

mysql explain使用方法相关推荐

  1. mysql index 使用方法_mysql index索引使用方法

    索引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行.表越大,花费的时间越多.如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜 ...

  2. Mysql Explain 详解

    Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...

  3. MYSQL:explain分析

    mysql explain分析 通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈.通过expalin可以得到: 1. 表的读取顺序 2.表的读取操作的操作类型 3.哪 ...

  4. (mysql) EXPLAIN语法

    MySQL Explain功能中展示各种信息的解释. 1.ID:MySQL Query Optimizer选定的执行计划中查询的序列号. 2.Select_type:所使用的查询类型,主要有以下这几种 ...

  5. mysql explain用法和结果的含义

    转载自https://www.cnblogs.com/yycc/p/7338894.html 转自:http://blog.chinaunix.net/uid-540802-id-3419311.ht ...

  6. mysql explain的使用(优化查询)

    explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 1.创建数据库 创建的sql语句如下: /*Navicat MySQL Da ...

  7. mysql explain 索引_MySql中Explain详解与索引最佳实践

    使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是 如何处理你的SQL语句的.分析你的查询语句或是结构的性能瓶颈 下面是使用 explain 的例子: 在 select 语句之 ...

  8. MySQL explain结果详解

    Mysql Explain 结果详解 语法 explain < SQL statement> 例如: explain select * from t3 where id=3952602; ...

  9. [转]Mysql explain用法和性能分析

    本文转自:http://blog.csdn.net/haifu_xu/article/details/16864933  from  @幸福男孩 MySQL中EXPLAIN解释命令是显示mysql如何 ...

最新文章

  1. PHP、Python 竟上榜最慢的现代编程语言
  2. Python startswith() 方法
  3. C++读取文件夹中所有文件的路径,包含子文件夹
  4. 2016年4月11日作业(法律法规、标准规范、职业道德)
  5. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
  6. 开源的关系型数据持久化组件
  7. Docker Compose学习之docker-compose.yml编写规则 及 实战案例
  8. 刚刚,爱奇艺发布重磅开源项目!
  9. Photoshop钢笔工具使用方法
  10. axis1 c# 接口 调用_C#图形编程GDI+基础
  11. GDI GDI+ 的区别
  12. 一文看懂:销售数据分析怎么做?
  13. 计算机 360云盘删除,删除360云盘图标,教你win7系统删除360云盘图标教程
  14. 小球碰撞python代码_Java 实现小球碰撞GUI
  15. codebook 背景减除
  16. AI根据代码内容自动起函数名,再也不怕命名不规范的同事了|开源
  17. 2020淘宝双十一快速刷金币工具
  18. Linux C编程(五) 之 gdb详解
  19. 京东区块链开源底层JD Chain版本升级,获工信部功能测试证书
  20. 一个好的科技公司logo长这样

热门文章

  1. 记hbuilderX USB调试无法识别手机
  2. python求均值、中位数、众数的方法
  3. 实现ls -l 与进程
  4. 华硕天选3FX507ZC原装Windows11原厂预装系统工厂模式恢复安装带ASUSRecevory一键还原22H2版本
  5. 利用python实现逢七拍腿小游戏
  6. JSP+Servlet java在线投票系统
  7. tf.argmax函数说明
  8. 「深度」怎样让鲸鱼飞跃篮球场——深度揭秘Magic Leap背后的技术+战略
  9. 递归算法的时间与空间复杂度分析
  10. 2021年证券类APP更新迭代检测专题分析(上)发布