当前位置: 首页 > news >正文

MySQL学习----Explain

        使用Explain可以查看sql的性能瓶颈信息,并根据结果进行sql的相关优化。当使用 Explain分析 SQL 查询时,MySQL 会返回一个包含多个字段的结果集,每个字段都提供了查询执行计划的重要信息。

        

        主要输出字段详解
(1)id

        含义:SELECT 标识符

        作用:表示查询中 SELECT 子句的执行顺序

        值说明:

        id 相同:执行顺序从上到下

        id 不同:从大到小执行

        id 为 NULL:表示结果集,如 UNION 结果

        (2)select_type

        含义:SELECT 查询类型

        常见值:

                SIMPLE:简单查询(不含子查询或 UNION)

                PRIMARY:最外层查询

                SUBQUERY:子查询中的第一个 SELECT

                DERIVED:派生表(FROM 子句中的子查询)

                UNION:UNION 中第二个或后面的 SELECT

                UNION RESULT:UNION 的结果

      (3)  table

        含义:访问的表名

        说明:可能是实际表名、别名或派生表名

       (4) partitions

        含义:匹配的分区

        作用:对于分区表,显示查询将访问哪些分区

        (5)type

        含义:访问类型(连接类型)

        性能排序(从优到劣):

        system > const > eq_ref > ref > range > index > ALL

        详细说明:

        system:表只有一行记录(系统表)

        const:通过主键或唯一索引一次找到

        eq_ref:唯一索引关联查询

        ref:非唯一索引查找

        range:索引范围扫描

        index:全索引扫描

        ALL:全表扫描

        (6)possible_keys

        含义:可能使用的索引

        说明:理论上可能使用的索引,不一定实际使用

        (7)key

        含义:实际使用的索引

        说明:可能不在 possible_keys 中(优化器自行选择)

        (8)key_len

        含义:使用的索引长度(字节)

        作用:判断使用了索引的哪些部分

       (9) ref

        含义:与索引比较的列或常量

        示例:显示哪些列或常量被用于查找索引列

       (10) rows

        含义:预估需要检查的行数

        说明:基于统计信息的估算值

        (11)filtered

        含义:存储引擎返回数据在 server 层过滤后的百分比

        范围:0-100,100 表示无需过滤

        (12)Extra

        含义:额外执行信息

        常见值:

                Using index:覆盖索引

                Using where:使用 WHERE 条件过滤

                Using temporary:使用临时表

                Using filesort:使用外部排序

                Using join buffer:使用连接缓冲

                Impossible WHERE:WHERE 条件永远为假

http://www.xdnf.cn/news/1155781.html

相关文章:

  • Kubernetes (K8S)知识详解
  • 二阶 IIR(biquad)滤波器
  • 红宝书单词学习笔记 list 51-75
  • Product Hunt 每日热榜 | 2025-07-20
  • 【c++】200*200 01灰度矩阵求所有的连通区域坐标集合
  • 去中心化协作智能生态系统
  • RK3588 安卓adb操作
  • Order Capital Round 1 (Codeforces Round 1038, Div. 1 + Div. 2) C、D
  • 讲解Mysql OnlineDDL的算法
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘lxml’问题
  • docker Neo4j
  • 【RK3576】【Android14】显示屏MIPI开发调试
  • 【图文详解】Transformer架构详细解析:多头自注意力机制、qkv计算过程、encoder架构、decoder架构以及mask的意义
  • Qwen3-8B 与 ChatGPT-4o Mini 的 TTFT 性能对比与底层原理详解
  • 网鼎杯2020青龙组notes复现
  • springboot websocket 自动重启方案
  • 彩虹云商城全源码 - 全新客服系统上线
  • CAN通讯理论与实践:调试和优化全讲解
  • 移动端开发的package命名规范
  • 《突破 GIL 限制:Python 多线程的真相与最佳实践》
  • “人工智能+”视域下计算思维与语文写作融合的跨学科教学设计模式探究
  • OpenTelemetry学习笔记(九):Elastic 对 OTLP 的原生支持
  • 二、Spark 开发环境搭建 IDEA + Maven 及 WordCount 案例实战
  • Golang的微服务链路追踪
  • 7. 命令模式
  • 5G NR PDCCH之CRC处理
  • GaussDB 数据库架构师修炼(七) 安全规划
  • 【Docker-Day 7】揭秘 Dockerfile 启动指令:CMD、ENTRYPOINT、ENV、ARG 与 EXPOSE 详解
  • 常用框架知识
  • Python基础-列表