`
vitoer
  • 浏览: 6285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql explain 解释

 
阅读更多
mysql explain中的type列含义和extra列的含义  此博文包含图片 (2013-06-08 15:19:33)转载▼
标签: it
很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义。
1 type列
官方的说法,说这列表示的是“访问类型”,更通俗一点就是:mysql找到需要的数据行的方式。一下就是从效率最差到最好顺序分别介绍下:
All 这个就是所谓的全表扫描,没有用到任何的index,mysql就是从头到尾把整个表遍历一边,找到所需要的数据行。效率是最差的。如下图,这个表中的usertype不是索引,这个查询中没有用到任何索引,所以就出现了全表扫描的结果。
mysql <wbr>explain中的type列含义和extra列的含义

index type列中出现了index,含义仅仅是局限在扫描全表的顺序是按照索引顺序扫描的,仅仅是按索引顺序去扫描的。它的有点是避免了排序,因为索引就是已经排序好的,缺点就是要承担按照索引次序读取整张表的开销。如下,这个查询中order by id,id是这个表的索引,但是因为没有在where中出现任何的索引列,所以它也只是索引顺去扫描了全表。(这里强调一下,你的查询语句中where条件中没有索引,只是order by 的时候用了index,而且没有用limit限制,type这里显示的是all,也就是这种情况下没有limit,还是扫面全表的)
mysql <wbr>explain中的type列含义和extra列的含义

range 这个一般就是在你的where语句中出现了between或者“>”这种符号的时候会出现这个。这种范围扫描索引扫描比全表扫描要好,因为它只需要开始于索引的某一点,而结束语另一点,不用扫描全部索引。
ref 这也是一种索引访问,它返回所有匹配某个单独值的行,然而,它可能会找到多个符合条件的行,所以他应该属于查找和扫描的混合体。
const,system 当mysql能对查询的部分就行优化,并且转换成一个常量的时候,它就会使用这种访问类型了。比如你把一行的主键当做where条件放进去,那mysql就可以把它转换成一个常量,然后查询。如下图:uid是主键,作为where条件就能出现这个效率最高的查询结果。
mysql <wbr>explain中的type列含义和extra列的含义

2 extra列
extra列中出现的信息一般不是太重要,但是还是有很多信息我们可以从这里面获取到:
using index:出现这个说明mysql使用了覆盖索引,避免访问了表的数据行,效率不错!
using where:这说明服务器在存储引擎收到行后将进行过滤。有些where中的条件会有属于索引的列,当它读取使用索引的时候,就会被过滤,所以会出现有些where语句并没有在extra列中出现using where这么一个说明。
using temporary:这意味着mysql对查询结果进行排序的时候使用了一张临时表。
using filesort:这个说明mysql会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。
分享到:
评论

相关推荐

    mysql explain

    mysql explain解释 文档,分析

    mysqlexplain.ppt

    以下是对EXPLAIN命令及其相关知识点的详细解释。 1. **EXPLAIN调用方式**: - **基础形式**:`EXPLAIN SELECT ...` - **EXTENDED形式**:`EXPLAIN EXTENDED SELECT ...`,此形式会显示出经过MySQL优化器优化后的...

    Mysql Explain

    ### MySQL Explain 深度解析 #### 一、Explain 的意义 在数据库查询优化领域,`EXPLAIN` 是一个非常强大的工具,它能够帮助我们分析 `SELECT` 语句的执行过程,揭示出查询效率低下的原因。通过 `EXPLAIN` 的分析...

    mysqlexplain.pdf

    mysql执行计划解读,刚要: 1、mysql执行计划调用方式; 2、执行计划包含的信息; 3、执行计划显示内容解读; 4、mysql执行计划的局限;

    Mysql Explain详细解析

    ### MySQL EXPLAIN 详解 #### 一、EXPLAIN 概述 MySQL 的 `EXPLAIN` 命令是一个非常强大的工具,它可以帮助我们理解 MySQL 如何执行查询,并为我们提供优化查询性能的重要信息。通过 `EXPLAIN`,我们可以了解查询...

    MySQL explain 笔记整理

    ### MySQL EXPLAIN 笔记整理 #### 一、EXPLAIN 命令简介 `EXPLAIN` 是 MySQL 提供的一个非常有用的工具,用于展示查询执行计划。通过它,我们可以了解到 SQL 查询是如何被执行的,这对于优化 SQL 语句、提高查询...

    mysql+explain实例分析

    在本篇文章中,我们将深入探讨"mysql+explain实例分析"这一主题,以理解如何利用`EXPLAIN`命令来优化MySQL查询性能。 `EXPLAIN`是MySQL提供的一种功能,用于在不实际执行查询的情况下分析SQL语句的执行计划。它帮助...

    mysql explain详解

    ### `EXPLAIN`输出解释 `EXPLAIN`返回的结果包含多行,每行对应查询中的一个表,列出了MySQL在执行查询时的详细步骤。主要列包括: 1. **id**:每个查询的唯一ID,如果查询中包含子查询,ID会递增。 2. **select_...

    MySQL-Explain

    Mysql Explain 使用

    mysql 中explain的详解

    EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让...

    MySQL explain-MySQL执行计划解读.ppt

    MySQL explain-MySQL执行计划解读.ppt

    MySQL explain详解.md

    MySQL explain详解

    MYSQL EXPLAIN详解

    ### MySQL EXPLAIN详解 #### 一、EXPLAIN简介 **EXPLAIN** 是 MySQL 提供的一个非常有用的工具,它能够帮助用户了解 MySQL 如何执行查询语句,并展示出 MySQL 预估的查询计划。这对于理解 SQL 查询的工作原理、...

    mysql explain用法

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。

    Mysql Explain 语法详细解析

    ### MySQL Explain 语法详细解析 #### 一、Explain 的重要性和作用 在数据库管理和维护过程中,查询性能的优化是一项非常关键的任务。特别是在处理大量数据和复杂查询的情况下,查询优化可以显著提高系统的响应...

    MySQL 性能优化神器 Explain 使用分析

    MySQL 性能优化 Explain ,MySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 Explain

    详解MySQL中EXPLAIN解释命令及用法讲解

    1,情景描述:同事教我在mysql中用explain,于是查看了一番返回内容的含义 2,现就有用处的内容做如下记录: 1,explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的...

Global site tag (gtag.js) - Google Analytics