zoukankan      html  css  js  c++  java
  • mysql explain语句解析

      通过对查询语句的分析,可以来了解查询语句的执行情况,找出查询语句执行的瓶颈,从未进行优化查询语句。

      EXPLAIN语句的基本语法 

    explain select select_options

      我们通过explain语句进行查询

    explain select * from class;

      

     下面我们对查询结果进行分析

      id:select识别符。这时select的查询序列号

    1. 如果为子查询,则id 的数字越大,则优先级越高
    2. id如果为相同,可以认为是同一组,从上往下进行查询
    3. 在所有组中,id越大则优先级越高

      select_type:连接类型

    1. SIMPLE表示简单查询,其中不包括连接查询和子查询
    2. PRIMARY:表示主查询,或者是最外层的查询语句
    3. UNION表示连接查询的第二个或者后面的查询语句
    4. UNION RESULT:表示连接查询的结果
    5. DERIVED表示导出表的select

      table:表示查询的表

      type:表示表连接的类型

    1. system:该表只有一行数据,这是const的一种特例,但是实际几乎不会出现,因为在实际开发中不可能出现一张表只存有这一行数据的现象
    2. const:表示通过索引一次就找到了,const用于primary,unique索引。因为其只匹配一条数据。若将主键置于where中,mysql就能将其转换成一个常量

      eq_ref:唯一性索引扫描,对于每个索引值表中只有一条记录与之匹配。常见与主键或者唯一索引扫描

      ref:对于来自前面表的任意行组合,将从该表中读取所有匹配的行。

      range:只检索给定范围的行,使用一个索引来选择行。当使用=,<>,>,>=,<,<=,<,is null,<=>,between或者in操作符,用常量比较关键字时,类型为range

      index:该连接类型与ALL相同。但它只扫描索引树,因为所以文件通常比数据文件小,通常比ALL更快

      ALL:进行全表扫描,出现呢这种情况是,需要通过建立索引来进行优化sql查询语句

      上面所提到的连接类型是最为常见的类型,其性能依次降低

      possible_key:指出mysql能使用哪个索引在该表中进行查询,若为null,则没有相关索引

      key:表示在查询中mysql实际用到的锁引,若为null,则实际查询中没有用到索引,可能是没有相关索引或者索引失效

      key_len:表示mysql选择的索引字段按字节计算的长度

      ref:表示使用哪个列或者常数与索引一起查询记录

      rows:显示mysql在查询时必须检查的行数

      Extra:表示mysql在处理查询时的详细信息

    1. using filesort(性能非常差):说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。mysql中无法利用索引完成的排序称为文件排序。
    2. using temporary(性能非常差):新建了内部临时表,使用了临时表保存中间结果。常见于order by,group by,所以分组和排序一定要按照锁建立的索引的名字和顺序.

     

      

    笨鸟先飞
  • 相关阅读:
    Android 主题theme说明 摘记
    Android开发 去掉标题栏方法 摘记
    安卓项目五子棋代码详解(二)
    关于 ake sure class name exists, is public, and has an empty constructor that is public
    百度地图3.0实现图文并茂的覆盖物
    android onSaveInstanceState()及其配对方法。
    关于集成科大讯飞语音识别的 一个问题总结
    android 关于 webview 控制其它view的显示 以及更改view数据失败的问题总结
    C# 解析 json Newtonsoft果然强大,代码写的真好
    c#数据类型 与sql的对应关系 以及 取值范围
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/14557687.html
Copyright © 2011-2022 走看看