`
sinykk
  • 浏览: 356998 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MYSQL explain是用来分析sql语句

    博客分类:
  • db
阅读更多

explain是用来分析sql语句,帮助优化的一个命令。

explain的语法如下:

explain [extended] select … from … where …

如果使用了extended,那么在执行完explain语句后,可以使用show warnings语句查询相应的优化信息。

比如我们执行  select uid from user where uname=’scofield’ order by uid  执行结果会有

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

这些东西。

其中 table 表示是哪个表的数据。

type比较重要。表示链接的类型。链接类型由好到坏的,依次是    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

一般情况,至少要达到 range 级别,最好是 ref 级别。否则可能会有性能问题。

possible_keys 是指可以应用到该表的索引,如果为NULL则没有。

key 是指用到的索引。

key_len 是索引的长度,在不影响查询精度的情况下,值越小越好。

ref 是指索引的那一列被使用了。一般会是个常数。

rows 是指有多少行。

extra 是指额外的信息。也是比较重要的。如果值为 distinct ,说明mysql 找到了域行联合匹配的行,就不再查找了。

如果值为 not exits  :  mysql优化了 left join ,一旦找到了 left join 匹配的行,便不再进行搜索了。

如果值为 rang checked for each :  没有找到理想的索引。

如果为 using filesort ,则需要改进sql了。这说明 mysql执行 需要 文件排序。这是比较影响效率的。

如果为  using  temporary , 这是使用了 临时表。 这种情况也比较影响效率,sql需要改进。或者从应用层进行改进。

如果为 where used 说明使用了where语句。如果 type为 all 或者 index ,一般会出现这样的结果。这样的问题,一般是查询需要改进。

在一般稍大的系统中,基本尽可能的减少 join ,子查询 等等。mysql就使用最简单的查询,这样效率最高。至于 join 等,可以放在应用层去解决。

分享到:
评论

相关推荐

    mysql的explain分析sql语句性能(慢查询和加没加索引)

    例如,在未建立索引的情况下,查询sql语句的执行时间可能很长,而建立索引后,查询sql语句的执行时间将大大降低,效率将大大提升。 因此,Explain 命令是 MySQL performance优化的重要工具,可以帮助开发者快速发现...

    SQL语句性能分析之explain

    ### SQL语句性能分析之explain #### 概述 在数据库管理及开发过程中,SQL查询语句的性能优化是一项至关重要的工作。为了更好地理解和优化SQL查询,MySQL提供了一个非常有用的工具——`EXPLAIN`。通过在SQL语句前...

    Effective MySQL之SQL语句最优化.pdf

    尽管如此,我将基于标题和描述中提供的关键词“Effective MySQL之SQL语句最优化”来构建知识点。 1. SQL语句最优化的概念:在数据库管理中,对SQL语句进行优化是提高数据库性能的关键环节。最优化的SQL语句能够在...

    通过分析SQL语句的执行计划优化SQL(总结)

    在不同的数据库系统中,如MySQL、Oracle、SQL Server等,都有相应的命令或工具用于查看SQL语句的执行计划,例如SQL Server的`SET SHOWPLAN_ALL`或`SET SHOWPLAN_TEXT`,Oracle的`EXPLAIN PLAN`。 4. **执行计划的...

    MySQL mysql_query 函数执行SQL语句.docx

    MySQL mysql_query 函数执行 SQL 语句 mysql_query() 函数是 PHP MySQL 函数库中的一种函数,用于向 MySQL 发送并执行 SQL 语句。该函数可以对数据库进行增删改查等操作,並返回执行结果。 参数说明: * query:...

    《Effective MySQL之SQL语句最优化》手册

    《Effective MySQL之SQL语句最优化》是一本深入探讨如何提升数据库性能的专业手册,它针对SQL语句的优化提供了一系列实用且高效的策略。在数据库管理领域,SQL优化是提升系统性能的关键环节,尤其是在处理大数据量时...

    mysql+explain实例分析

    `EXPLAIN`是MySQL提供的一种功能,用于在不实际执行查询的情况下分析SQL语句的执行计划。它帮助我们理解查询是如何工作的,包括哪些索引被使用,数据是如何获取的,以及查询的潜在性能问题。 首先,我们要知道的是...

    《Effective MySQL之SQL语句最优化》数据库SQL

    《Effective MySQL之SQL语句最优化》是一本深入探讨如何提升数据库性能,特别是针对SQL查询进行优化的专业书籍。在数据库管理中,SQL语句的优化是至关重要的,它直接影响到系统的响应速度和整体效率。本篇文章将依据...

    【MySQL数据库】一条SQL语句为什么执行这么慢?

    1. **分析与调整索引**:通过`EXPLAIN`语句分析查询计划,了解是否正确使用了索引,适时创建复合索引或覆盖索引,优化索引结构。 2. **优化SQL语句**:避免在查询条件中使用函数,确保能充分利用索引。使用`JOIN`时...

    Effective MySQL之SQL语句最优化

    "Effective MySQL之SQL语句最优化"这本书深入探讨了如何通过优化SQL查询来提高MySQL数据库的效率。以下是基于这个主题的一些关键知识点: 1. **索引优化**:索引是数据库性能提升的核心。书中的内容可能涵盖如何...

    mysql explain用法

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

    LNH_MySQL 22-利用explain查看sql语句的执行计划.mp4

    LNH_MySQL 22-利用explain查看sql语句的执行计划.mp4

    mysqlexplain.ppt

    通过分析EXPLAIN输出,我们可以识别查询中的瓶颈,比如全表扫描(ALL)、索引未被使用(key为NULL)等情况,从而调整SQL语句,添加合适的索引,优化查询性能。理解这些执行计划的关键概念对于提升MySQL数据库的性能...

    通过分析SQL语句的执行计划优化SQL语句

    本文将深入探讨如何通过分析SQL语句的执行计划来实现这一目标。执行计划是数据库管理系统(DBMS)执行SQL语句的详细步骤,它揭示了数据的检索路径、使用的索引、排序和连接操作等信息。了解这些信息可以帮助我们找出...

    提升MYSQL查询效率的10个SQL语句优化技巧.doc

    以下是十个 SQL 语句优化技巧来提升 MYSQL 查询效率: 1. 优化 MySQL 查询缓存 MySQL 查询缓存可以启用高速查询缓存,让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一。当同一个查询被执行多次时,如果...

    mysql优化sql语句的优化(索引,常用小技巧.)

    ### MySQL优化之SQL语句与索引优化 #### 数据库设计合理性 在MySQL数据库的优化过程中,合理设计数据库(表)至关重要。一个合理的数据库设计能够有效地提高查询性能、减少数据冗余并确保数据完整性。 - **3NF**...

    通过分析SQL语句的执行计划优化SQL总结)

    下面将详细介绍如何通过分析SQL语句的执行计划来优化SQL。 首先,理解执行计划的基本元素至关重要。执行计划通常包括操作符、成本、行数和时间估计。操作符如扫描、选择、排序、连接等,表示数据库处理数据的方式;...

    MySQL SQL语句优化explain关键字

    在大数据和高流量的时代,对数据库的性能要求日益提高,SQL语句的优化变得尤为重要。MySQL中的`EXPLAIN`关键字是分析SQL查询性能的关键工具,它可以帮助我们理解查询的执行计划,以便进行有效的优化。本篇文章将深入...

    102 透彻研究通过explain命令得到的SQL执行计划(3).pdf

    在给出的文档内容中,通过分析一个包含子查询的SQL语句的执行计划,我们可以看到如何通过explain命令去分析复杂的SQL查询。文档中展示了执行计划中包含的各个字段的含义,例如id、select_type、table、partitions、...

Global site tag (gtag.js) - Google Analytics