• Mysql中EXPLAIN解读


    Explain介绍

    当EXPLAIN与可解释的语句一起使用时,MySQL将显示来自优化器的有关语句执行计划的信息。也就是说,MySQL解释了它将如何处理该语句,包括有关如何连接表以及以何种顺序连接表的信息。在select语句之前增加explain关键字,执行后MySQL就会返回执行计划的信息,而不是执行sql。可以通过Explain来查看sql语句中的索引执行情况。

    执行结果显示列

    在这里插入图片描述

    • id:语句唯一标识。id列的编号是select的序列号,有几个select就会有几个id,并且id是按照select出现的顺序增长的,id列的值越大优先级越高,id相同则是按照执行计划从上向下执行,id为空则是最后执行的。
    • select_type:查询类型
    • table:表名
    • partitions:当前查询匹配记录的分区。对于未分区的表,返回null
    • type:针对单表的查询方式(全表扫描,索引)
    • possible_keys:可能的索引选择
    • key:实际选择的索引
    • key_len:索引的长度
    • ref:索引的哪一行被引用了
    • rows:估计要扫描的列
    • filtered:表示符合查询条件的数据百分比
    • Extra:附加信息

    select_type

    当多个select语句进行嵌套时,select_type会有不同的取值,常见的有如下几种:

    • simple:不包含子查询和union的简单查询
    • primary:复杂查询中最外层的select
    • subquery:包含在select中的子查询
    • derived:包含在from子句中的子查询
    • union:在union中的第二个和随后的select

    type

    表示联接类型,不同类型之间的性能不同,从好到坏依次是:
    system > const > eq_ref > ref>… > range > index > all
    一般来说,得保证查询至少达到range级别,最好能达到ref。
    在这里插入图片描述

  • 相关阅读:
    Element日期选择器设置可选区间
    获取文件创建时间
    王江涛十天搞定考研词汇
    借鉴前端事件机制的Spring AOP
    引用对象的实例方法
    540. 有序数组中的单一元素
    Linux命令dmesg介绍和使用
    【车间调度】基于改进鲸鱼算法解决柔性车间调度多目标问题附matlab代码
    SpringBoot 通过注解给属性添加校验并返回统一结果
    二叉堆(一) - 原理与C实现
  • 原文地址:https://blog.csdn.net/weixin_43962203/article/details/127801423