MySQL执行计划explain

本文详细介绍了MySQL的explain执行计划,包括id、select_type、table、partitions、type、possible_keys、key、ref、rows、filtered和Extra等字段的含义和作用。理解这些字段有助于优化SQL查询,提升数据库性能。
摘要由CSDN通过智能技术生成

1  explain执行计划

        在日常学习与工作之中,我们有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,常用到explain这一命令来查询这些SQL语句的执行计划,查看该SQL是否用了了索引,是否做了全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。

1.1  explain执行计划包含的信息

这其中最重要的字段为:id、type、key、rows、Extra

在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。

1.2  各字段详解

1.2.1  id

id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。MySQL将 select 查询分为简单查询和复杂查询。复杂查询分为三类:简单子查询、派生表(from语句中的子查询)、union 查询。

id的三种情况:
① id相同:执行顺序由上至下

② id不同:如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行;

③ id相同又不同(两种情况同时存在):id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行。

1.2.2   select_type

查询的类型,主要是用于区分普通查询、联合查询、子查询等复杂的查询。

1.2.3   table

该字段表示 explain正在访问哪个表。

1.2.4  partitions</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值