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

    这里写图片描述

    (1)id

    id:代表select 语句的编号, 如果是连接查询,表之间是平等关系, select 编号都是1,从1开始. 如果某select中有子查询,则编号递增.

    (2)select_type

    select_type: 查询类型

    这里写图片描述

    (3)table

    table: 查询针对的表

    有可能是实际的表名 如select * from t1;也有可能是表的别名如 select * from t2 as tmp;
    derived:如from型子查询时
    null:直接计算得结果,不用走表

    (4)possible_key

    possible_key: 可能用到的索引
    注意: 系统估计可能用的几个索引,但最终,只能用1个.

    (5)key&key_len

    key : 最终用的索引.
    key_len: 使用的索引的最大长度

    注: 有可能possible_keys为NULL,而key不为NULL这种情况.
    possible_keys分析的是索引用于查找的过程,
    而最终的key可能是被用于查找,排序,或索引覆盖

    (6)type

    type列: 是指查询的方式, 非常重要,是分析”查数据过程”的重要依据

    1)all

    意味着从表的第1行,往后,逐行做全表扫描.,运气不好扫描到最后一行.

    这里写图片描述

    2)index

    index: 比all性能稍好一点,
    通俗的说: all 扫描所有的数据行,相当于data_all index 扫描所有的索引节点,相当于index_all

    两种情况可能出现:

    • 索引覆盖的查询情况下, 能利用上索引数据,但利用不上索引查找,必须全索引扫描.

    这里写图片描述

    • 是利用索引来进行排序

    这里写图片描述

    3)range

    range: 意思是查询时,能根据索引做范围的扫描

    这里写图片描述

    4)ref

    ref 意思是指 通过索引列,可以直接引用到某些数据行

    这里写图片描述

    t15表中在cat_id和price字段上有符合索引,使用下面的sql语句会使用到复合索引,有可能可以取到多行数据,这里取到了982条数据,所以为type为ref。

    这里写图片描述

    5)eq_ref

    eq_ref 是指,通过索引列,直接引用某1行数据,常见于连接查询中

    这里写图片描述

    6)const, system, null

    这3个分别指查询优化到常量级别, 甚至不需要查找时间.

    这里写图片描述

    (7)ref

    指连接查询时, 表之间的字段引用关系.

    这里写图片描述

    (8)rows

    rows : 是指估计要扫描多少行.

    (9)extra

    index: 是指用到了索引覆盖,效率非常高
    using where 是指光靠索引定位不了,还得where判断一下
    using temporary 是指用上了临时表, group by 与order by 不同列时,或group by ,order by 别的表的列.
    using filesort : 文件排序(文件可能在磁盘,也可能在内存),

  • 相关阅读:
    简单的逻辑学 笔记
    中国古代文化常识 笔记
    Docker 使用官方镜像
    Docker 入门 之基本命令
    Windows.form增删改查
    自定义控件
    LISTVIEW
    窗体布局
    计算器
    登录
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407014.html
Copyright © 2011-2022 走看看