zoukankan      html  css  js  c++  java
  • 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 使用临时表

  • 相关阅读:
    自省改过
    c语言学习教程1之预定义代码
    tqdm进度条管理
    React-i18next切换中英文
    React怎样实现点击其他地方隐藏弹出的菜单
    遍历对象再取值,获得新值
    Web 用户体验设计提升指南
    antd vue form
    echarts 内容显示值在图中显示,不显示交互效果,只是静态图
    element-ui中el-table根据浏览器的缩放自适应宽度
  • 原文地址:https://www.cnblogs.com/duanjiapingjy/p/9415930.html
Copyright © 2011-2022 走看看