首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EXPLAIN作用

什么是EXPLAINEXPLAINMySQL 中的一个重要命令,它用于分析 SQL 查询语句的执行计划。...EXPLAIN 的主要作用是帮助开发者理解查询语句的执行过程,以及查询优化器如何选择索引、表扫描方式等。通过分析 EXPLAIN 的输出结果,开发者可以找到查询性能的瓶颈,并对查询语句进行优化。...当你在 SQL 查询语句前加上 EXPLAIN 关键字时,MySQL 会返回一个包含查询执行计划的结果集,而不是实际执行查询并返回数据。...-- 使用覆盖索引的查询mysql> EXPLAIN SELECT first_name, last_name, salary FROM employees WHERE salary > 60000;+...使用 EXPLAIN 的主要目的是分析和优化查询语句的执行计划。以下是一些使用 EXPLAIN 的重要原因:查询性能分析: 通过 EXPLAIN,你可以深入了解 MySQL 是如何执行查询的。

13210

mysql explain ref列_MySQL EXPLAIN详解

MySQL EXPLAIN详解:http://www.jianshu.com/p/ea3fc71fdc45 MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain...key key列显示MySQL实际决定使用的键(索引)。...Extra Extra是EXPLAIN输出中另外一个很重要的列,该列显示MySQL在查询过程中的一些详细信息,MySQL查询优化器执行查询的过程中对查询计划的重要补充信息。...这是MySQL服务层完成的,但无需再回表查询记录。 Using index condition 这是MySQL 5.6出来的新特性,叫做“索引条件推送”。...distinct 优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作 explain作用 我们使用explain命令来查看mysql语句的执行计划(execution plan),解释

3.7K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql explain ref null_MySQL Explain详解

    MySQL Explain详解 简介 执行计划(query Execution plan) 语法 explain select * from table explain 中的列 expain出来的信息有...通常,您可以ALL通过添加基于常量值或早期表中的列值从表中启用行检索的索引来避免 五、possible_keys 该possible_keys列指示MySQL可以选择在此表中查找行的索引,指出MySQL...能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用 该列完全独立于EXPLAIN输出所示的表的次序。...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。...根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数 十、Extra 该Extra列 EXPLAIN输出包含MySQL解决查询的额外信息。

    1.8K40

    Mysql Explain 详解

    ,有没有做全表扫描,这都可以通过explain命令来查看。...(QEP:sql生成一个执行计划query Execution plan) mysql> explain select * from servers; +----+-------------+-----...五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用 该列完全独立于EXPLAIN输出所示的表的次序。...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。...• EXPLAIN不考虑各种Cache • EXPLAIN不能显示MySQL在执行查询时所作的优化工作 • 部分统计信息是估算的,并非精确值 • EXPALIN只能解释SELECT操作,其他操作要重写为

    1.1K20

    mysqlexplain介绍

    我们对系统性能分析的一部分就是数据库的分析,比如定位到查询速度慢的SQL,我们想对其进行优化,但是从哪些方面进行优化,就需要使用explain来查看select语句的执行计划。...explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,对我们的查询语句进行分析,提升性能。...使用expain关键字,我们可以分析到的信息有: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 使用方法:explain + SQL...查询中若包含任何复杂的子部分,最外层查询则被标记为PRIMARY SUBQUERY 在SELECT或WHERE列表中包含了子查询 DERIVED 在FROM列表中包含的子查询被标记为DERIVED(衍生),MySQL...如将主键置于where列表中,MySQL就能将该查询转换为一个常量。

    43330

    MySQL EXPLAIN ANALYZE

    Ryeng 译:徐轶韬 MySQL8.0.18刚刚发布,它包含一个全新的功能EXPLAIN ANALYZE,用来分析和理解查询如何执行。 EXPLAIN ANALYZE是什么?...EXPLAIN ANALYZE是一个用于查询的分析工具,它向用户显示MySQL在查询上花费的时间以及原因。它将产生查询计划,并对其进行检测和执行,同时计算行数并度量执行计划中不同点上花费的时间。...这项新功能建立在常规的EXPLAIN基础之上,可以看作是MySQL 8.0之前添加的EXPLAIN FORMAT = TREE的扩展。...EXPLAIN除了输出查询计划和估计成本之外,EXPLAIN ANALYZE还会输出执行计划中各个迭代器的实际成本。 如何使用?...EXPLAIN ANALYZE是MySQL查询分析工具里面的一个新工具: 检查查询计划:EXPLAIN FORMAT = TREE 分析查询执行:EXPLAIN ANALYZE 了解计划选择:Optimizer

    1.4K20

    MySQL - EXPLAIN详解

    概述 EXPLAIN: 为 SELECT语句中使用到的每个表返回一条信息。它按照MySQL在处理语句时读取它们的顺序列出这些表。MySQL使用循环嵌套算法解析所有连接。...QEP: SQL语句的查询执行计划 注意: 在以前版本的MySQL中,使用 EXPLAIN PARTITIONS 与 EXPLAIN EXTENDED 来生成分区和扩展信息 。...目前为止这些语法仍然是向后兼容的,但未来 MySQL会将它们排除出 EXPLAIN语法,因为现在 EXPLAIN默认就会输出分区和扩展的相关信息。...如果是这样,那么就需要创造一个适当的索引,并再次用 EXPLAIN检查 key(JSON名:key) 显示MySQL实际决定使用的键(索引),如果MySQL决定使用其中一个 possible_keys...常作用在解析子查询中。

    1.3K21

    mysql explain详解

    对于经常使用mysql的兄弟们,对explain一定不会陌生。当你在一条SELECT语句前放上关键词EXPLAINMySQL解释它将如何处理SELECT,提供有关表如何联合和以什么次序的信息。...官方的关于explain的文档在http://dev.mysql.com/doc/refman/5.1/en/using-explain.html(英文),本文可作为官方文献的不完整通俗读物。...使用的方法 EXPLAIN tbl_name 或: EXPLAIN [EXTENDED] SELECT select_options 前者可以得出一个表的字段结构等等,后者主要是给出相关的一些索引信息,...举例 mysql> explain select * from event; +----+-------------+-------+------+---------------+------+----...key 显示MySQL实际决定使用的键。如果没有索引被选择,键是NULL。 key_len 显示MySQL决定使用的键长度。如果键是NULL,长度就是NULL。

    785100

    mysql explain 详解

    准备一条复杂一点的语句 字段描述 id  mysql查询序列号 可以认定为mysql语句的执行顺序 1:如果是同一组查询,id序号则一致,顺序从上到下 2:如果是子查询,则序号自增,执行顺序从小到大...select_type 查询的类型 mysql的查询方式,有以下几种类型: SIMPLE                简单的查询,不适用union和子查询等 PRIMARY               ...表使用了分区,则会显示出具体需要查询的分区 type 访问类型 mysql在查询中找到数据的查询方式,从上往下,性能从最好到最差 system                该表只有一行数据(系统表),...matching min/max row                  当查询列表处有 MIN 或者 MAX 聚集函数,但是并没有符合 WHERE 子句中的搜索条件的记录时,将会提示该额外信息( EXPLAIN...如果 WHERE 子句中包含要求被驱动表的某个列等于 NULL 值的搜索条件,而且那个列又是不允许存储 NULL 值的,那么在该表的执行计划的 Extra 列就会提示 Not exists 额外信息( EXPLAIN

    87220

    MySQL explain详解

    MySQL explain详解 Explain简介 本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型...下面是使用 explain 的例子: 在 select 语句之前增加 explain 关键字,MySQL会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询...mysql> explain select * from actor; +----+-------------+-------+------+---------------+------+-------...MySQL会将结果存放在一个临时表中,也称为派生表(derived的英文含义) 用这个例子来了解 primary、subquery 和 derived 类型 mysql> explain select...常见的重要值如下: distinct: 一旦mysql找到了与行相联合匹配的行,就不再搜索了 mysql> explain select distinct name from film left join

    72620

    mysql explain ref const_MySQL EXPLAIN 详解「建议收藏」

    一 .介绍 EXPLAIN 命令用于SQL语句的查询执行计划。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的。...EXPLAIN select * from person; 六. possible_keys : 该 possible_keys列表示MySQL可以从中选择查找表中的行的索引。...对数据不是按照表内的索引顺序进行读取,而是使用了其他字段重新排序. mysql> EXPLAIN select * from person ORDER BYid;+—-+————-+——–+——-+——...是按照表内的索引顺序进行读的 再看下面的列子: mysql> EXPLAIN select * from person ORDER BYsalary;+—-+————-+——–+——+—————+——+...mysql> explain select * from a16 where num_a=1 and num_b=1;+—-+————-+——-+————+——+—————+——-+———+——-+——

    91240
    领券