1、使用Explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈 。

2、执行方法:Explain + SQL语句

  

  解释:

  ①id:

    select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。

    三种情况:

      id相同,执行顺序由上至下

      

     id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行

      

      id相同不同,同时存在

      

  ②select_type

     常见和常用的值有6种

     

    查询的类型用于区分 普通查询、联合查询、子查询等的复杂查询。

    SIMPLE:

        简单的select查询,查询中不包含子查询或者UNION。

    PRIMARY:

        查询中若包含任何复杂的子部分,最外层查询则被标记为PRIMARY

    SUBQUERY:

        在SELECT或WHERE列表中包含了子查询。

    DERIVED:

        在FROM列表中包含的子查询被标记为DERIVED(衍生),MySQL会递归执行这些子查询,把结果放在临时表里。

    UNION:若第二个SELECT出现在UNION之后,则被标记为UNION,若UNION包含在FROM子句的子查询中,外层SELECT将被标记为:DERIVED

    UNION RESULT 从UNION表获取结果的SELECT。

  ③type:取值为下面8种

    

    type显示的是访问类型,是较为重要的指标,结果值从最好到最坏依次是:

    system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALL。

    工作中常见的有:

    system >const >eq_ref >ref> rang>index> all

    一般来说,得保证查询至少达到range级别,最好能达到ref。

    

        

  ④possible_keys 和 key

    possible_keys:

    

    keys:

    

  ⑤key_len

    

  ⑥ref

    

  ⑦rows

    

    

  ⑧Extra

    

    

        

     

        

    应避免出现Using Filesort(文件排序)和using temporary(临时表) 这样会导致性能下降,排序应使用和索引一致顺序和列。

    

         

       

3、能干嘛

  表的读取顺序

  数据读取操作的操作类型

  哪些索引可以使用

  哪些索引被实际使用

  表之间的引用

  每张表有多少行被优化器查询

4、JOIN语句优化

  

最新文章

  1. 旷世奇坑!!!spring 不能自动注入
  2. Clr Via C#读书笔记----基元线程同步构造
  3. Android性能优化之布局优化
  4. PS网页设计教程XXIV——从头设计一个漂亮的网站
  5. 修改Servlet模板
  6. OC实现同步访问属性
  7. php define和const的区别
  8. WaitForSingleObject函数
  9. shell:bash环境
  10. Java复习总结——继承
  11. 一个基于nuxt的基础架子,支持aixos,sass,es6,elementUI
  12. CString与string、char*的区别和转换
  13. easyui 回车搜索
  14. mysql自定义函数与过程中写法的注意事项
  15. 【java】求两个字符串的最长公共子串
  16. EDK II之USB主控制器(EHCI)驱动的实现框架
  17. 安装 Linux 内核 4.0
  18. python基础学习4----元组
  19. 【delphi】关键字详解
  20. ASP.NET MVC传递参数(model), 如何保持TempData的持久性

热门文章

  1. django+ajax用FileResponse文件下载到浏览器过程中遇到的问题
  2. jquery基础介绍-转
  3. C#的常用类
  4. 查询sqlserver 表结构呀
  5. Python的多进程
  6. git 码云 使用记录
  7. webpack 优化代码 让代码加载速度更快
  8. 模拟MBR Grub故障修复
  9. PHP对接QQ互联,超级详细!!!
  10. Hadoop2学习路程-HDFS