• mysql学习笔记之explain


    测试mysql的版本5.7.24,不同的mysql版本查询的方式是不一样的。同一条sql在 5.7.24中执行与5.7.25中执行用到的索引就不一样。

    explain 说明,解释

    explain各项参数说明

    • id 表示执行的顺序
      id的值越大,越先执行。对应简单的sql,关联查询 id的值都是相同的

    • select_type 查询类型
      SIMPLE 简单
      DERIVED 有子查询的(派生)
      PRIMARY 查询中若包含任何复杂的子查询,最外层查询则被标记为Primary,注意不是主键

    • table 查询的表名称(有别名就显示表的别名)
      对哪一步操作的结果

    • type 查询的方式,这个很重要
      const,system 只有一行匹配的时候
      eq_ref 比较好的,用户到了主键索引或者唯一索引
      ref 与eq_ref不同的是使用到了索引的左前缀
      range 使用到索引指定范围的查询
      index 扫描索引树
      all 全部扫描

    • possible_keys
      用到的合适的索引,可能用到的索引

    • key
      实际用的索引

    • key_len
      决定使用索引的长度

    • ref
      关联表使用那一字段筛选行

    • rows
      执行查询可能扫描的行数,这是一个预估值

    • filtered
      返回结果的行,占读到的行(rows)的百分比

    • extra
      另外的,这个参数也很重要
      ···
      Using index condition; Using where; Using MRR; Using temporary; Using filesort
      ···

    不同的MySQL版本、不同的存储引擎甚至不同的数据量表现都可能不一样。参考: http://www.cnblogs.com/zhanjindong/p/3439042.html

  • 相关阅读:
    最短母串
    noip模拟测试7
    linux下的对拍程序
    noip模拟测试6
    QWidget 前后位置设定
    C++编程规范_第5~13条 设计风格
    random /timer/sort 示例代码
    资料准备
    【转】三维动态数组 分配与释放
    批量修改文件名
  • 原文地址:https://www.cnblogs.com/zqsb/p/10625961.html
Copyright © 2020-2023  润新知