explain 之 extra 介绍|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习 explain 之 extra 介绍

开发者学堂课程【MySQL 高级应用 - 索引和锁explain 之 extra 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8606


explain 之 extra 介绍


一.释义

包含在其他列中显示但十分重要的额外信息【最重要的一段字段属性之一】。

额外信息:

1.using  filesort

说明 MySQL 会对数据使用一个外部的索引排序,而不是按照表内的索引完成的排序操作称为“文件排序”。

【出现某种情况用不上索引,用上 using filesort 比较危险】

Using filesort

mysq1> explain select co11 fron t1 uhere co11=' ac ' order by co13\ G

id :1

select _ type : SI Н PLE

table :t1 type : ref

possible _ keys : idx _co11_co12_col3

key : idx _co11_co12_co13 key _ len :13

ref : const rous :142

Extra : Using uhere ; Using index ; Using filesort

1 row in set (0.00 sec )

ny5q1> expiain Seiect cO11FrOmt1 utere c011" ac Order by c012,C013\

id :1

select _ type : SIHPLE

table :t1 type : ref

mossible _ keys : idx _co11_co12_co13

key : idx _co11_co12_co13 key _ len :13

ref : const rouS :142

Extra : Using where ; Using index

row in set (0.00 sec )

2.using temporary

使用了临时表保存中间结果,MySQL 在对查询结果排序时使用临时表。

常见于排序 order by 和分组查询 group by .

id :1

select _ type : SIHPLE

table :t1 type : range

possible _ keys : idx _co11_co12

key : idx _co11_co12 key _ len :13

ref : NULL

rowS :569

Extra : Using where ; Using index ; Using tenporary ; Using filesort

row in set (0.00 sec )

mysq1> explain select co11 fron t1 where co11 in (' ac ',' ab ') group by co11,co12\

id :1

select _ type : SIMPLE

table :t1 type : range

possible _ keys : idx _col1_co12_co13

key : idx _co11_co12_co13 key _ len :26Г

ref : HULL rouS :

Extra : Using uhere ; Using index for group - by

3.using index:

【遇见这种情况不用管,前两者比较倒霉。】

表示相应的 select 操作中使用了覆盖索引( Covering Index ),避免访问了表的数据行,效率不错!如果同时出现 using where ,表明索引被用来执行索引键值的查找;

如果没有同时出现 using where ,表明索引用来读取数据而非执行查找动作。

4.using where:表示使用了 where 过滤

5.Using join buffer:使用了连接缓存

6.Impossible wherewhere 子句的值总是 FALSE,不能用来获取任何元组

7.Select tables optimized away

在没有groupby子句的情况下,基于索引优化 min/max 操作或者对于 myisam 存储引擎优化【count*】操作,不必等到执行阶段在进行计算,查询执行计划生成的阶段即完成优化。

8. Distinct:优化 distinct 操作,在找到第一匹配的元组后即停止找同样值的动作。

MysQL> explaln select co12 fron t uhere col1-' ab *;

p055IDieeyIkeyI key _ len Iref Iros IEktra

( Cove : !11… idx _col1_co12 I idx _cel1_col2I13 Iconst I143IUsing uhere ; Using index

被用来执

1 row in set (0.0sec)

索引用来

如果同时出现 using where ,表明索引被用来执行索引键值的查找;

Пysq1> explaia select col1,ce12 fron t1;

1I select _ type I table I type Ipossib1e_ keys I key I key _1en I ref Iros IExtra

1ISIPLE It1Iindek I Н ULL I1dx_col1_co12I39 IHULL I682 IUsing indek

r0u n set (0.0sec

如果没有同时出现 using where ,表明索引用来读取数据而非执行查找动作。

覆盖索引( Covering Index ),一说为索引覆盖。

理解方式一:

就是 select 的数据列只用从索引中就能够取得,不必读取数据行, MysQL 可以利用索引返回 select 列表中的字段,而不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖。

理解方式ニ:

索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。

一个索引包含了(或覆盖了)满足査询结果的数据就叫做覆索引

注意:

如果要使用覆盖索引,一定要注意 select 例表中只取出需要的列,不可 select ,因为如果将所有字段一起做索引会导致索引文件过大,查询性能下降。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
缓存 关系型数据库 MySQL
explain
explain
31 0
|
11月前
|
存储 SQL 关系型数据库
Optimizing Queries with EXPLAIN(用explain来优化查询语句)
Optimizing Queries with EXPLAIN(用explain来优化查询语句)
27 0
|
存储 SQL JSON
【MySQL从入门到精通】【高级篇】(二十五)EXPLAIN中ref、rows、filtered、Extra字段的剖析
上一篇文章我们介绍了 【MySQL从入门到精通】【高级篇】(二十四)EXPLAIN中select_type,partition,type,key,key_len字段的剖析,重点介绍了EXPLAIN命令的select_type,partition,type,key,key_len 字段含义。这篇文章我将接着介绍剩余字段的含义。本文会介绍ref、rows、filtered、Extra这几个字段。比较重要的两个字段是rows、Extra
1115 0
【MySQL从入门到精通】【高级篇】(二十五)EXPLAIN中ref、rows、filtered、Extra字段的剖析
|
关系型数据库 MySQL 开发者
explain 之 rows 介绍|学习笔记
快速学习 explain 之 rows 介绍
135 0
explain 之 rows 介绍|学习笔记
|
SQL 关系型数据库 MySQL
Explain 之 type 介绍|学习笔记
快速学习 Explain 之 type 介绍
112 0
Explain 之 type 介绍|学习笔记
|
关系型数据库 MySQL 开发者
Explain 之 id 介绍|学习笔记
快速学习 Explain 之 id 介绍
79 0
Explain 之 id 介绍|学习笔记
|
关系型数据库 MySQL 开发者
explain 之 select-type 和 table 介绍|学习笔记
快速学习 explain 之 select-type 和 table 介绍
736 0
|
关系型数据库 MySQL vr&ar
explain 之 ref 介绍|学习笔记
快速学习 explain 之 ref 介绍
662 0
explain 之 ref 介绍|学习笔记
|
SQL 关系型数据库 MySQL
FAQ系列 | 解读EXPLAIN执行计划中的key_len
FAQ系列 | 解读EXPLAIN执行计划中的key_len
|
存储 关系型数据库 MySQL
Extra(5)—mysql执行计划(五十一)
Extra(5)—mysql执行计划(五十一)