Mysql的执行计划中,其他的列都比较好理解,唯独这个Extra列,总是看得有点让人似懂非懂,先终于找了个机会自己研究了下。
using index:
中文名叫做索引覆盖查询: 如果查询的时候,用到了索引,并且你最终需要的数据也是这个索引的一部分,那么就出现using index.
例如:
user表有索引 key(id), key(name)
select id from user;
select name from user;
select id from user where id<9;
而select id,name from user where id<9就没有
组合索引key(id,name)
select id,name from user where id>9也可以有
using where:
会根据查询条件过滤出结果集
using file sort 以及using temporary:
这2个是最容易让人迷惑的,很多人都可能会把其表达的意思扩展理解了,其实他表达的内容很有限。
using file sort: 表示排序的时候,没有用上索引,不得不采取其他的方式排序。 这里的其他方式有在内存排,在临时文件排,采用双路排序法,或者是采用整行排序等,而using file sort并没有说是其他哪些排序方法。
using temporary: 表示用到了一张临时表,至于这临时表在内存里面,还是在磁盘里面都不明。
出现这个两个步骤的情况非常多,这里只列几个吧:
using file sort:
order by 的第一列不是执行计划中的第一个表的索引上
order by 有多列,不在同一table上的索引
order by 的列,有升序,降序,不一致
using temporary:
在group by的时候,如果,被group by的列不在索引上,那么就需要临时表来进行group,另外如果没有order by null,也许会要file sort进行排序。
在order by的时候,如果被排序的列,分布在多余一个表上
分享到:
相关推荐
MySQL 执行计划 Extra 列解析 MySQL 执行计划是 MySQL 优化器生成的执行计划,用于指导 MySQL 数据库执行 SQL 语句。Extra 列是执行计划中的一个重要部分,用于描述执行计划的详细信息。在本文中,我们将深入探讨 ...
MySQL执行计划是数据库管理员和开发人员用来优化查询性能的关键工具。它揭示了MySQL如何解析SQL语句、如何处理数据以及如何使用索引。通过理解执行计划,我们可以更好地了解查询的内部工作原理,从而进行必要的调整...
MySQL执行计划是数据库管理员和开发人员优化SQL查询性能的关键工具。它揭示了MySQL如何解析查询,确定数据检索的顺序,以及使用哪些索引。在本文中,我们将深入探讨MySQL执行计划,了解其重要性,如何生成,以及如何...
MySQL执行计划是数据库管理员和开发人员用来理解和优化SQL查询性能的关键工具。它是数据库解析和执行SQL语句的蓝图,提供有关数据库如何执行查询的详细信息。执行计划可以帮助我们理解SQL语句的执行流程,包括数据的...
1. `sql/`:包含了MySQL的核心SQL处理逻辑,包括解析器、优化器、执行器等。 2. `storage/`:存储引擎的实现,如InnoDB、MyISAM等。 3. `include/`:头文件,定义了各种接口和数据结构。 4. `libmysql/`:客户端库,...
在Linux环境下配置MySQL与PHP执行环境,涉及到的关键知识点主要包括源码rpm包的安装、软件包管理、以及系统配置。以下是对这些知识点的详细解析: ### 1. RPM包的使用与管理 RPM (Red Hat Package Manager) 是一种...
### Java大厂面试专题课-MySQL面试题解析 #### MySQL慢查询定位方法 - **面试官提问**: 如何定位MySQL中的慢查询? - **解答**: - 首先,可以通过运维监控系统(例如Skywalking)来检测并定位慢查询。这种方式下...
1. **服务器核心**:这是MySQL的主要部分,负责处理客户端请求、解析SQL语句、执行查询并返回结果。源码中的`sql`目录包含了这部分的核心代码,如解析器(parser)、查询优化器(optimizer)和执行器(executor)。 ...
- **配置编译参数:**执行`./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --with-plugins=innobase,federated`,设置安装路径及字符集等选项。 - **编译与安装:**运行`...
`EXPLAIN` 是 MySQL 提供的一种工具,它可以帮助我们了解 SQL 查询的具体执行计划,进而帮助我们识别潜在的性能瓶颈并进行相应的优化。 **为什么要使用 EXPLAIN?** - **分析 SELECT 语句**:通过 EXPLAIN 可以...
### CentOS7 源码安装 MySQL 5.6 详细步骤及知识点解析 #### 一、准备工作:安装必要的依赖包 在正式安装 MySQL 5.6 之前,我们需要确保系统中已经安装了一些编译工具和其他必备组件。这些工具主要用于帮助我们...
3. **使用 EXPLAIN ANALYZE**:在 MySQL 8.0.19 及更高版本中,可以通过 `EXPLAIN FORMAT=JSON` 或 `EXPLAIN ANALYZE` 来获取更详细的执行计划和性能数据。 4. **优化表结构**:如果 `EXPLAIN` 显示存在大量全表扫描...
本讲义主要围绕`EXPLAIN`展开,介绍了其基本用法、输出解析、优化策略以及实战应用,旨在帮助读者深入理解MySQL查询执行过程,提升数据库性能。实际操作中,还需要结合具体业务场景灵活运用,才能充分发挥`EXPLAIN`...
- **命令**:`./configure --prefix=/usr/local/mysql/ --with-charset=utf8 --with-extra-charsets=all` - **参数解析**: - `--prefix`:指定安装路径,此处设置为`/usr/local/mysql/`。 - `--with-charset=utf8...
源码阅读的关键在于理解MySQL的主要流程:客户端发送SQL到服务器,服务器解析SQL,优化查询计划,选择合适的存储引擎执行,并返回结果。同时,还要关注并发控制、事务处理、锁机制、索引结构等核心概念。 通过阅读...
### 深入解析:使用 EXPLAIN 优化 MySQL 查询之旅 #### 一、MySQL简介与特点 MySQL作为一款流行的开源关系型数据库管理系统(RDBMS),因其强大的功能与灵活性,在Web应用程序开发领域占据着举足轻重的地位。它不仅...
在Linux CentOS系统中,编译安装MySQL是一项技术性较强的任务,尤其对于初学者而言。MySQL是一种广泛应用的关系型数据库管理系统(RDBMS),它以其高效、稳定和开源的特点赢得了广大用户的青睐。下面,我们将深入...