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 条件永远为假

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值