zoukankan      html  css  js  c++  java
  • explain解析

    、执行explain后的结果项介绍:

     

    a、id,sql的查询序列号,即sql语句的执行顺序

    b、select_type,

         simple:表示简单的select,没有union和子查询。

         primary:最外面的select,在有子查询的语句里。

         union:union语句的第二个或者是后面那一个(前一个是primary)//union:两个查询的并集,详情:http://blog.csdn.net/yl2isoft/article/details/16922403

        dependent uion:union中的第二个或者是后面的那一个。

        union result:union的结果

    c、table 。

    d、type 链接类型。

        system:表仅有一行。

        const:表最多有一个匹配行,用于比较primary key或者 unique索引。

        eq_ref:对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。它用在一个索引的所有部分被联接使用并且索引是UNIQUE或PRIMARY KEY。(mysql手册)。

    explain
    select
    count(orde.id)
    from
    t_app_order as orde,
    t_app_ordertrace as ordertrace
    where
    orde.id=ordertrace.order_id
    and
    orde.banjia_time>ordertrace.time
    and
    ordertrace.operation=301

        ref:ref 对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取。

    explain select * from t_app_ordertrace where order_id=xx

      ref_or_null: 该联接类型如同ref,但是添加了MySQL可以专门搜索包含NULL值的行。在解决子查询中经常使用该联接类型的优化

      该5中类型为理想类型。

     index_merge 该联接类型表示使用了索引合并优化方法。在这种情况下,key列包含了使用的索引的清单,key_len包含了使用的索引的最长的关键元素。

     unique_subquery 
     index_subquery 

       range 给定范围内的检索,使用一个索引来检查行 ,放在in下的字段最好有很高的辨识度。

       index     该联接类型与ALL相同,除了只有索引树被扫描。这通常比ALL快,因为索引文件通常比数据文件小。(也就是说虽然all和Index都是读全表,但index是从索引中读取的,而all是从硬盘中读的)

        ALL  对于每个来自于先前的表的行组合,进行完整的表扫描。如果表是第一个没标记const的表,这通常不好,并且通常在它情况下差。通常可以增加更多的索引而不要使用ALL,使得行能基于前面的表中的常数值            或列值被检索出。

    e、possible_keys 使用那个索引会在表中找到该列。

    f、keys:mysql使用的索引。

    g、key_len:索引的长度。

    h、ref:ref列显示使用哪个列或常数与key一起从表中选择行。

    i、rows:rows 显示MYSQL执行查询的行数,简单且重要,数值越大越不好,说明没有用好索引

    j、Extra:解决查询的详细信息。

        Distinct: MySQL发现第1个匹配行后,停止为当前的行组合搜索更多的行

        Not exists:

        range checked for each record:没有找到合适的索引。

       using filesort :MySQL需要额外的一次传递,以找出如何按排序顺序检索行。通过根据联接类型浏览所有行并为所有匹配WHERE子句的行保存排序关键字和行的指针来完成排序。然后关键字被排序,并按排序顺序检           索行。

        using index 只使用索引树中的信息而不需要进一步搜索读取实际的行来检索表中的信息。这个比较容易理解,就是说明是否使用了索引

        using where

        Using sort_union(...), Using union(...),Using intersect(...)

        Using index for group-by

  • 相关阅读:
    IIS发布MVC出错
    dynamic
    设计模式——简单工厂模式[已了解本质]
    Object和泛型
    sublime Text不能安装插件的解决办法
    .net MVC入门
    windows服务写完之后怎么让它跑起来
    sql数据库连接字符串在APP.config配置文件内的两种写法
    Sql语句里面调用变量
    Sql数据库不能频繁连接
  • 原文地址:https://www.cnblogs.com/rookie111/p/8316865.html
Copyright © 2011-2022 走看看