explain 之 extra 介绍|学习笔记

简介: 快速学习 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 ,因为如果将所有字段一起做索引会导致索引文件过大,查询性能下降。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
存储 关系型数据库 MySQL
MySQL 5.7 - 常见数据类型
MySQL 5.7 - 常见数据类型
783 1
|
SQL Java 数据库连接
MyBatis-Plus 实战教程二 核心功能(一)
MyBatis-Plus 实战教程二 核心功能
262 0
|
Java Spring
Spring根据包名获取包路径下的所有类
参考mybatis MapperScannerConfigurer.java   最终找到 Spring的一个类  ClassPathBeanDefinitionScanner.java 参考ClassPathBeanDefinitionScanner 和它的父类 ClassPathScanningCandidateComponentProvider,将一些代码进行抽取,得到如下工具类。
2051 0
|
5月前
|
关系型数据库 MySQL Java
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
|
4月前
|
存储 关系型数据库 MySQL
MySQL中实施排序(sorting)及分组(grouping)操作的技巧。
使用这些技巧时,需要根据实际的数据量、表的设计和服务器性能等因素来确定最合适的做法。通过反复测试和优化,可以得到最佳的查询性能。
309 0
|
JavaScript 前端开发 小程序
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
很火的DeepSeek到底是什么
DeepSeek,全称杭州深度求索人工智能基础技术研究有限公司,成立于2023年。因推出开源 AI 模型 DeepSeek-R1 而引起了广泛关注。与ChatGPT相比,大幅降低了推理模型的成本。
3782 36
|
安全 关系型数据库 Linux
什么叫网站国产化改造?哪些CMS符合国产化标准?
国产化需求在未来的互联网话题上是只会越来越多、越来越重要的,这个国产化改造不单单针对网站项目上,还会逐步涉及到各大软件和系统上,所以,相关的单位提前了解国产化的改造标准和需求,到传达的时候、不会显得出手无策。
771 5
|
SQL 监控 数据可视化
DolphinScheduler教程(02)- 系统架构设计(上)
DolphinScheduler教程(02)- 系统架构设计(上)
541 0
DolphinScheduler教程(02)- 系统架构设计(上)
|
存储 算法 Java
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
前缀(波兰)表达式、中缀表达式和后缀(逆波兰)表达式的基本概念、计算机求值方法,以及如何将中缀表达式转换为后缀表达式,并提供了相应的Java代码实现和测试结果。
1609 0
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现