explain是用来分析sql语句,帮助优化的一个命令。

explain的语法如下:

explain [extended] select … from … where …

如果使用了extended,那么在执行完explain语句后,可以使用show warnings语句查询相应的优化信息。

比如我们执行  select uid from user where uname=’scofield’ order by uid  执行结果会有

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

这些东西。

其中 table 表示是哪个表的数据。

type比较重要。表示链接的类型。链接类型由好到坏的,依次是    system > const > eq_ref >

ref > fulltext > ref_or_null > index_merge >

unique_subquery > index_subquery > range > index > ALL

一般情况,至少要达到 range 级别,最好是 ref 级别。否则可能会有性能问题。

possible_keys 是指可以应用到该表的索引,如果为NULL则没有。

key 是指用到的索引。

key_len 是索引的长度,在不影响查询精度的情况下,值越小越好。

ref 是指索引的那一列被使用了。一般会是个常数。

rows 是指有多少行。

extra 是指额外的信息。也是比较重要的。如果值为 distinct ,说明mysql 找到了域行联合匹配的行,就不再查找了。

如果值为 not exits  :  mysql优化了 left join ,一旦找到了 left join 匹配的行,便不再进行搜索了。

如果值为 rang checked for each :  没有找到理想的索引。

如果为 using filesort ,则需要改进sql了。这说明 mysql执行 需要 文件排序。这是比较影响效率的。

如果为  using  temporary , 这是使用了 临时表。 这种情况也比较影响效率,sql需要改进。或者从应用层进行改进。

如果为 where used 说明使用了where语句。如果 type为 all 或者 index ,一般会出现这样的结果。这样的问题,一般是查询需要改进。

在一般稍大的系统中,基本尽可能的减少 join ,子查询 等等。mysql就使用最简单的查询,这样效率最高。至于 join 等,可以放在应用层去解决。

mysql sql explain_MYSQL explain是用来分析sql语句相关推荐

  1. [MySQL高级](一) EXPLAIN用法和结果分析

    转载: https://blog.csdn.net/why15732625998/article/details/80388236 1. EXPLAIN简介 使用EXPLAIN关键字可以模拟优化器执行 ...

  2. MySQL查询优化之explain的深入解析

    在分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.expla ...

  3. mysql执行计划explain介绍_Mysql执行计划EXPLAIN详解

    分析查询性能时,考虑EXPLAIN关键字同样很管用.EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作.以及MySQL成功返回结果集需要执行的行数.explai ...

  4. MYSQL中的EXPLAN是用来解析sql语句的

    explain是用来分析sql语句,帮助优化的一个命令. explain的语法如下: explain [extended] select - from - where - 如果使用了extended, ...

  5. sql执行组件是灰色的_如何分析SQL执行计划图形组件

    sql执行组件是灰色的 In the previous articles of this series, SQL Server Execution Plans overview and SQL Ser ...

  6. mysql分析sql语句基础工具 —— explain

    转载自 https://segmentfault.com/a/1190000009724144 立即登录 [笔记] mysql分析sql语句基础工具 -- explain  mysql wateran ...

  7. mysql 查询慢 分析_MySQL优化:定位慢查询的两种方法以及使用explain分析SQL

    一条SQL查询语句在经过MySQL查询优化器处理后会生成一个所谓的执行计划,这个执行计划展示了具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等. 本章的内容就 ...

  8. mysql 执行效率命令_MySQL优化--explain 分析sql语句执行效率

    MySQL优化--explain 分析sql语句执行效率 explain 命令 explain 命令在解决数据库性能上市第一推荐使用命令,大部分的性能问题可以通过此命令来简单解决,explain可以用 ...

  9. mysql table combine_Mysql系列-性能优化神器EXPLAIN使用介绍及分析

    MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化. EXPLAIN 命令用法十分简单, 在 SEL ...

  10. explain ref_数据库查询优化:使用explain分析sql语句执行效率

    对于复杂.效率低的sql语句,我们通常是使用explain sql 来分析sql语句,这个语句可以打印出,语句的执行过程.这样方便我们分析,进行优化. 首先,说一下,explain查询出来的数据如何分 ...

最新文章

  1. 学习笔记:数据分析和处理(ML计算模型前的预处理)——持续更新
  2. Rabbitmq如何保证消息顺序执行
  3. HTMLTestRunner加入logging输出
  4. python标准库之socket_python标准库SocketServer学习
  5. 解决tsvncache.exe引起电脑慢的问题
  6. linux添加超级管理员用户,修改,删除用户
  7. 读书笔记 effective c++ Item 47 使用traits class表示类型信息
  8. Python 爬虫 目标:千图网VIP高清无水印下载即用
  9. 已经无限接近于真实!EA下一代寒霜引擎展示令人惊叹的毛发效果
  10. 第六章、面向对象的PHP
  11. 磁盘的组成、MBR、GPT
  12. 淘宝订单同步及解决方法
  13. 小程序开发之 wx.getUserInfo获取用户信息方案介绍
  14. 如何将PDF格式转换为WORD文档
  15. android平台开发板外接罗技C525摄像头不支持扫码有什么办法解决
  16. Appium 屏幕截图(交易宝)
  17. 字节跳动,正在动摇互联网的根基!(转)
  18. 利用七牛云作为图片服务器
  19. js跳转新页面,指定div加载新页面
  20. 面向对象程序设计c++版董正言张聪课本课后习题答案第二章

热门文章

  1. 在一起盗窃案中,法官对涉及到的四名犯罪嫌疑人A,B,C,D进行了审问.
  2. windows 全系列电脑加速,告别电脑“卡”的时代
  3. 关于荣耀che1-cl20手机制作服务器失败的事
  4. 系统映像恢复 进不了系统_如何从Windows系统映像中恢复特定文件
  5. 畅想物联网未来 | 百度云天工智能物联网沙龙圆满落幕
  6. 创建不带参数的存储过程
  7. Python时间序列建模基础
  8. 反编译工具的安装与使用(解决部分能反编译部分不能反编译)
  9. 中文转拼音全拼和首字母
  10. Leetcode SQL 刷题学习:175. 组合两个表