`
张延龙地盘
  • 浏览: 26416 次
社区版块
存档分类
最新评论

mysql explain的用法

 
阅读更多

   如果在SELECT语句前放上关键词EXPLAINMySQL将解释它如何处理SELECT,提供有关表如何联接和联接的次序。

EXPLAIN的每个输出行提供一个表的相关信息,并且每个行包括下面的列:

1.id   SELECT识别符。这是SELECT的查询序列号。

2.select_type 可以为一下任何一种类型

SIMPLE  简单SELECT(不使用UNION或子查询)

PRIMARY   最外面的SELECT

UNION    UNION中的第二个或后面的SELECT语句

DEPENDENT UNION  UNION中的第二个或后面的SELECT语句,取决于外面的查询

UNION RESULT  UNION的结果。

SUBQUERY 子查询中的第一个SELECT

DEPENDENT SUBQUERY  子查询中的第一个SELECT,取决于外面的查询

DERIVED    导出表的SELECT(FROM子句的子查询)

3.table  输出的行所引用的表。

4. type  联接类型。下面给出各种联接类型,按照从最佳类型到最坏类型进行排序:

system  表仅有一行(=系统表)。这是const联接类型的一个特例。

 const  表最多有一个匹配行,它将在查询开始时被读取。因为仅有一行,在这行的列值可被优化器剩余部分认为是常数。const表很快,因为它们只读取一次!

eq_ref 对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。它用在一个索引的所有部分被联接使用并且索引是UNIQUEPRIMARY KEY

ref  对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取。如果联接只使用键的最左边的前缀,或如果键不是UNIQUEPRIMARY KEY(换句话说,如果联接不能基于关键字选择单个行的话),则使用ref。如果使用的键仅仅匹配少量行,该联接类型是不错的。

ref可以用于使用=<=>操作符的带索引的列。

 possible_keys 如果该列是NULL,则没有相关的索引。在这种情况下,可以通过检查WHERE子句看是否它引用某些列或适合索引的列来提高你的查询性能。如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询

 key   列显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL。要想强制MySQL使用或忽视possible_keys列中的索引,在查询中使用FORCE INDEXUSE INDEX或者IGNORE INDEX

5. rows  rows列显示MySQL认为它执行查询时必须检查的行数。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    mysql explain用法

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

    mysql中explain用法详解

    总之,掌握`EXPLAIN`的使用是提升MySQL查询性能的关键步骤,它让我们能够深入理解查询的执行过程,为数据库优化提供有力的支持。在开发和维护数据库系统时,定期使用`EXPLAIN`分析复杂查询,可以有效避免不必要的...

    MySQL explain 笔记整理

    #### 三、EXPLAIN 的高级用法 - **Extended EXPLAIN**:除了基本的 EXPLAIN 之外,还可以使用 `EXPLAIN FORMAT=JSON` 或 `EXPLAIN EXTENDED` 来获得更详细的执行计划信息,包括 `ROWS_EXAMINED_PER_EXECUTION` 和 `...

    Mysql Explain 语法详细解析

    为了更好地理解 EXPLAIN 的使用方法,下面我们通过一个具体的例子来进行说明: 假设有一个名为 `employees` 的表,结构如下: ``` CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR...

    Explain-MySQL.doc#资源达人分享计划#

    - index_merge: 使用多个索引合并的方法。 - unique_subquery: 用于IN子查询中的唯一值查找。 - index_subquery: 类似于unique_subquery,但针对索引子查询。 - range: 使用索引查找指定范围内的行。 - all: 全...

    MySQL-Explain 详解

    MySQL Explain 详解 MySQL Explain 是 MySQL 中的一个重要工具,用于解释和优化 SQL 查询语句。通过 Explain,可以了解 MySQL 是如何执行查询语句的,并且可以根据 Explain 的结果来优化查询语句。 一、用法 ...

    Mysql Explain 详解.txt

    #### 1.2 使用方法 要使用`Explain`,只需在`SELECT`语句前加上`EXPLAIN`关键字即可,例如: ```sql EXPLAIN SELECT * FROM t3 WHERE id = 3952602; ``` 这将返回一个结果集,其中包含了关于查询执行方式的详细信息...

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

    使用方法,在select语句前加上explain就可以了: explain select count(DISTINCT uc_userid) as user_login from user_char_daily_gameapp_11 where uc_date &gt;= "2017-09-04" and uc_date&lt;="2017-09-08" AND

    Mysql Explain 详解.docx

    MySQL中的`EXPLAIN`命令是用于分析SQL查询执行计划的重要工具,它可以帮助数据库管理员和开发者了解MySQL如何处理SQL语句,从而优化查询性能。在处理慢查询时,`EXPLAIN`是不可或缺的辅助手段。 一、`EXPLAIN`基本...

    Mysql Explain 详细介绍

    它提供了一种查看MySQL如何执行SELECT语句的方法,帮助我们理解查询计划、索引使用情况以及潜在的性能瓶颈。下面是对MySQL EXPLAIN的详细解读。 1. **语法** `EXPLAIN` 命令的基本语法是在SELECT语句之前添加`...

    Mysql中explain的说明

    ### MySQL中EXPLAIN命令详解 #### 一、概述 在MySQL数据库管理中,查询优化是一项非常重要的工作。通过优化查询,不仅可以提升查询速度,还能节省系统资源...希望本文能帮助您更好地理解和使用MySQL的`EXPLAIN`功能。

    mysqlexplain-100712043803-phpapp01.ppt

    本讲义将深入探讨`EXPLAIN`的使用方法及其背后的原理。 一、EXPLAIN基本用法 `EXPLAIN`关键字用于在不实际执行查询的情况下,分析MySQL如何执行SQL查询。通过在SELECT语句之前添加`EXPLAIN`,我们可以得到查询执行...

    explain的用法

    【explain的用法】在IT领域,特别是在数据库管理和SQL查询优化中,`explain`是一个非常重要的工具。它允许我们分析MySQL以及其他数据库系统如何执行SELECT语句,帮助我们理解查询的执行计划,从而找出可能的性能瓶颈...

    MySQL中EXPLAIN命令详解

    使用方法,在select语句前加上explain就可以了: 如: mysql&gt; explain select * from kt_course order by create_time desc; +----+-------------+-----------+------+---------------+------+---------+------+---...

    mysql explain的用法(使用explain优化查询语句)

    MySQL的`EXPLAIN`命令是数据库管理员和开发者用于分析SQL查询执行计划的重要工具。通过`EXPLAIN`,我们可以深入了解查询如何工作,以及如何优化数据库性能。以下是对`EXPLAIN`命令各个列的详细解释: 1. **id**: ...

    mysql高级视频教程百度云(2019).txt

    21.MySQL高级_explain使用简介.avi 20.MySQL高级_性能分析前提知识.avi 19.MySQL高级_哪些情况不适合建索引.avi 18.MySQL高级_哪些情况适合建索引.avi 17.MySQL高级_索引结构与检索原理.avi 16.MySQL高级...

    2021年MySQL高级教程视频.rar

    ├第一天视频,网盘文件,永久连接 01.MySQL高级课程内容介绍.mp4 ...15.MySQL高级优化SQL步骤explain之keyrowsextra.avi 16.MySQL高级优化SQL步骤showprofile.avi 17.MySQL高级优化SQL步骤trace工具.avi 18. .....

Global site tag (gtag.js) - Google Analytics