• MySQL执行计划explain


    explain select语句

    1.id

      一组数字,表示执行select子句或者操作表的顺序

      如果数组相同,顺序由上到下执行

      如果数字不同,值越大,越先执行

      id相同的可以认为是一组,id不同的值越大优先级越高

    2.selectType

      每个子句的类型

      simple(简单查询,不包含子查询或者union)

      primary(如果包含子查询,最外层标记为primary)

      subquery(select或者where中的子查询)

      union(若第二个select出现在union之后,则被标记为union)

      derived(若第二个select出现在from中,则最外层标记为derived)

      union result(从union表获取结果的select)

    3.table

      当前查询涉及的表

    4.type

      连接类型,找到所需行的方式

      all 遍历全表

      index 遍历索引树

      range 索引范围扫描 between 大于 小于

      ref (最佳左前缀)非唯一索引(表中有多条记录与之匹配)

      eq_ref 唯一索引(表中仅有一条记录与之匹配)

      const MySQL对查询进行优化,并转化成一个常量

      system 查询的表只有一行

      null 不用访问表或者索引

    5.possible_keys

      可能用到的索引

    6.key

      实际使用的索引

    7.key_len

      索引中使用的字节数

      越短越好

      该列表示的是索引字段的最大可能长度,并非实际使用长度。

      是根据表的定义计算而得

    8.ref

      索引的哪一列被使用了,常数较好

    9.rows

      得到结果需要读取的行数

      根据表的统计信息和索引的选用情况估算

    10.extra

      using index 使用了覆盖索引(包含所有满足查询需要的数据的索引,利用索引直接返回数据,不需要根据索引再次读取数据文件)

      using where MySQL服务器在存储引擎收到记录后进行post filter后过滤

      using temporary 使用临时表存储结果集(排序和分组时常见)需要优化

      using filesort 在order by 时,无法使用索引进行排序而出现了文件排序。需要优化  

    using filesort、using temporary(常出现在使用order by时)时需要优化。

        Using filesort 出现文件排序
        Using temporary 使用临时表

  • 相关阅读:
    1015,存储过程,视图
    1009,数据库查询,聚合函数,日期时间函数
    1008,数据库表格创建,名称,格式

    公历和农历转换的JS代码
    面向对象之封装
    HTML之锚点
    HTML之css+div
    HTML基础
    SQL之定义变量
  • 原文地址:https://www.cnblogs.com/duanjiapingjy/p/9415930.html
Copyright © 2020-2023  润新知