Mysql(二) explain详解

Mysql(二) explain详解

explain介绍

使用explain关键字可以模拟优化器执行SQL,分析sql查询的性能

返回如下结果

请添加图片描述

explain出来的信息有12列,分别是id、select_type、table、partitions、type、possible_keys、key、key_len、ref、rows、filtered、Extra

id 查询的序列号

返回结果中执行的优先级,值越大,越先执行,相同时,由上到下顺序执行

select_type 查询的类型

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

table 查询的表

要查询的表,当 from 子句中有子查询时,table列是 <derivenN> 格式,表示当前查询依赖 id=N 的查询,于是先执行 id=N 的查询。

**partitions 查询的分区 **

type

这一列表示关联类型或访问类型,即MySQL决定如何查找表中的行,查找数据行记录的大概范围。
依次从最优到最差分别为:system > const > eq_ref > ref > range > index > ALL

  • system 只查询一个元素并且是常量
  • const 查询是一个常量,有多个元素
  • **eq_ref ** 使用唯一索引 主键或者唯一键,只返回一条记。一般用来 多表连接中使用primary key或者unique key作为关联条件
  • **ref ** 使用普通索引,可能会查询到多个值
  • **range ** 范围查询,且使用到索引
  • **index ** 扫描全索引就能拿到结果,一般使用为覆盖索引
  • ALL 全表扫描,效率最差

possible_keys

可能用到的索引

key

实际用到的索引

key_len

这一列显示了mysql在索引里使用的字节数,通过这个值可以算出具体使用了索引中的哪些列。

ref

表查找值所用到的列或常量

rows

估计返回的结果集行数

filtered

查询条件过滤的行数的百分比

Extra 额外信息

  • Using filesort 使用文件内排序,建议优化
  • Using temporary 使用临时表,效率不高,建议优化
  • Using index 使用覆盖索引,性能不错
  • Using where 使用了where查询,但字段没有在索引范围内
  • Using index 使用覆盖索引,性能不错
  • Using where 使用了where查询,但字段没有在索引范围内
  • Using index condition 查询的列不完全被索引覆盖
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中,EXPLAIN是一个关键字,用于查询SQL语句的执行计划和索引使用情况。使用EXPLAIN可以帮助我们了解MySQL如何处理我们的查询语句,并对查询进行优化。 EXPLAIN命令会返回一个包含12信息的结果集。这些包括:id,select_type,table,partitions,type,possible_keys,key,key_len,ref,rows,filtered,Extra。每一都提供了有关查询执行的详细信息。 - id表示查询的标识符,常用来区分查询的不同部分。 - select_type表示查询的类型,例如简单查询、子查询、联合查询等。 - table表示与查询相关的表名。 - partitions表示查询涉及的分区信息。 - type表示查询的访问类型,包括全表扫描、索引扫描、范围扫描等。 - possible_keys表示可能用到的索引。 - key表示实际使用的索引。 - key_len表示索引的长度。 - ref表示查询中使用的索引引用。 - rows表示查询返回的行数估计值。 - filtered表示查询结果的过滤率。 - Extra提供了额外的信息,如是否使用了临时表、是否使用了文件排序等。 通过分析EXPLAIN的结果,我们可以判断查询是否使用了索引,是否存在全表扫描等问题,从而进行查询性能的优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Mysqlexplain详解](https://blog.csdn.net/weixin_44143114/article/details/118526637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL数据库:第十七章:Explain详解](https://blog.csdn.net/java_wxid/article/details/111881486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值