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

谈谈MYSQLExplain

#规定慢 SQL 的查询阙值,超过这个值将会被记录到慢查询文件,单位:秒long_query_time=3#慢查询日志以文件的形式输出log_output=FILE基本介绍 Explain被称为执行计划...,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。...(注意,如果 from 包含子查询,仍会执行该子查询,将结果放入临时表)。Explain结果是基于数据表现有数据的。...Explain结果与MySQL版本有很大的关系,不同版本的优化器的优化策略不同。...语法:explain sql语句示例:mysql> explain select * from actor;+----+-------------+-------+------+------------

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

mysql explain ref列_MySQL EXPLAIN详解

MySQL EXPLAIN详解:http://www.jianshu.com/p/ea3fc71fdc45 MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain...决定采用哪个索引来优化查询 key_len 显示mysql在索引里使用的字节数 ref 显示了之前的表在key列记录的索引查找值所用的列或常量 rows 为了找到所需的行而需要读取的行数,估算值,不精确...结果的下一列 当有union result的时候,表名是union 1,2等的形式,1,2表示参与union的query id 注意:MySQL对待这些表和普通表一样,但是这些“临时表”是没有任何索引的...要想强制MySQL使用或忽视possible_keys列的索引,在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。...Extra Extra是EXPLAIN输出另外一个很重要的列,该列显示MySQL在查询过程的一些详细信息,MySQL查询优化器执行查询的过程对查询计划的重要补充信息。

3.5K60

mysql explain ref null_MySQL Explain详解

MySQL Explain详解 简介 执行计划(query Execution plan) 语法 explain select * from table explain 的列 expain出来的信息有...使用索引的读取执行全表扫描,以按索引顺序查找数据行。 Uses index没有出现在 Extra列。当查询仅使用属于单个索引的列时,MySQL可以使用此连接类型。...通常,您可以ALL通过添加基于常量值或早期表的列值从表启用行检索的索引来避免 五、possible_keys 该possible_keys列指示MySQL可以选择在此表查找行的索引,指出MySQL...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。...根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数 十、Extra 该Extra列 EXPLAIN输出包含MySQL解决查询的额外信息。

1.8K40

MySQLexplain的结果​字段介绍

MySQLexplain的结果字段介绍(二) 昨天说完了执行计划的前四个字段,今天说说后面几个字段吧。...我们看看explain的基本语法和输出内容: mysql ::>>explain select ; +----+-------------+-------+------+---------------+...Const const值就是当我们根据主键或者唯一二级索引列与常数进行等值匹配的时候,对表的访问方法就是const,为了演示效果,我们给表多插入了几条数据,如下: mysql:yeyztest...子查询中使用了test_explain的普通索引字段a_key_var和test_explain的主键id字段进行等值匹配,外层的where条件我们使用的是test_explain的主键id值进行...index_subquery 这个和上面一样,但是in条件的子查询使用的是a_key_var普通索引字段,而不是id字段: mysql:yeyztest 18:53:30>>explain select

8.5K10

MySQL explain extra

MySQL执行计划,extra可以展示执行的一些细节,比如索引下推,覆盖索引,排序等信息,为索引优化提供了更完整的信息 常见的extra extra有很多,这里只列出了最常见的几种类型 Using...where: 查询条件 Using index condition: 索引下推(Index Condition Pushdown) Using filesort:Server层需要做额外的排序操作...,需要优化,让排序使用到索引 no matching row in const table:唯一索引(包括主键)查询不到数据 Using index:覆盖索引,查询的行都在对应的索引 Using...因为接近的索引,可能在相同的页上 Using temporary:使用了临时表,需要优化 疑问 条件只有一个条件,是索引的第一个字段,也可能Using index condition,这个就太不明白了.../doc/refman/8.0/en/explain-output.html#explain-extra-information Mysql-explain之Using temporary和Using

68030

MySQL Explain详解

MySQL Explain详解 ?...上图是使用Explain分析的一条sql语句,下面我们来看一下各个字段的具体含义是什么 expain出来的信息有10列,分别是id、select_type、table、type、possible_keys...如将主键置于where列表MySQL就能将该查询转换为一个常量,system是const类型的特例,当查询的表只有一行的情况下,使用system NULL: MySQL在优化过程中分解语句,执行时甚至不用访问表或索引...五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用 该列完全独立于EXPLAIN输出所示的表的次序。...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。

1.1K10

Mysql Explain 详解

在日常工作,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引...(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...列表包含的子查询被标记为DERIVED(衍生),MySQL会递归执行这些子查询,把结果放在临时表 UNION 若第二个SELECT出现在UNION之后,则被标记为UNION:若UNION包含在...如将主键置于where列表MySQL就能将该查询转换为一个常量。

41230

MySQL EXPLAIN ANALYZE

Ryeng 译:徐轶韬 MySQL8.0.18刚刚发布,它包含一个全新的功能EXPLAIN ANALYZE,用来分析和理解查询如何执行。 EXPLAIN ANALYZE是什么?...EXPLAIN ANALYZE是一个用于查询的分析工具,它向用户显示MySQL在查询上花费的时间以及原因。它将产生查询计划,并对其进行检测和执行,同时计算行数并度量执行计划不同点上花费的时间。...这项新功能建立在常规的EXPLAIN基础之上,可以看作是MySQL 8.0之前添加的EXPLAIN FORMAT = TREE的扩展。...该信息也会在EXPLAIN FORMAT = TREE输出。 我们将从最后面的循环数开始。此过滤迭代器的循环数为2。这是什么意思?要了解此数字,我们必须查看查询计划过滤迭代器上方的内容。...EXPLAIN ANALYZE是MySQL查询分析工具里面的一个新工具: 检查查询计划:EXPLAIN FORMAT = TREE 分析查询执行:EXPLAIN ANALYZE 了解计划选择:Optimizer

1.3K20

Mysql 令人稀里糊涂的Explain

Mysql 令人稀里糊涂的Explain 本文想和大家来聊聊Mysql的执行计划,一条SQL语句经过了查询优化器模块分析后,会得到一个执行计划,通过这个执行计划,我们可以知道该条SQL语句具体采用的多表连接顺序是什么...,对于每个表具体采用的访问方法是什么 . . ....我们可以使用Mysql提供的Explain命令来获取一条SQL语句的具体执行计划,本文的重点在理解Mysql执行计划各个选项含义。...这是因为MySQL会在包含GROUP BY子句的查询默认添加上ORDER BY子句,也就是说上述查询其实和下边这个查询等价: EXPLAIN SELECT common_field, COUNT(*)...---- 小结 本文简单介绍了一下MysqlExplain执行计划各个属性的含义,通常面试中比较喜欢问着方面问题,如果是个人学习,更推荐先系统学习一下数据库查询优化这块内容相关知识。

24450

mysql explain详解

对于经常使用mysql的兄弟们,对explain一定不会陌生。当你在一条SELECT语句前放上关键词EXPLAINMySQL解释它将如何处理SELECT,提供有关表如何联合和以什么次序的信息。...官方的关于explain的文档在http://dev.mysql.com/doc/refman/5.1/en/using-explain.html(英文),本文可作为官方文献的不完整通俗读物。...举例 mysql> explain select * from event; +----+-------------+-------+------+---------------+------+----...rows 这个数表示mysql要遍历多少数据才能找到,在innodb上是不准确的。 Extra 如果是Only index,这意味着信息只用索引树的信息检索出的,这比扫描整个表要快。...Using index 从只使用索引树的信息而不需要进一步搜索读取实际的行来检索表的列信息。 Using temporary 为了解决查询,MySQL需要创建一个临时表来容纳结果。

771100

MySQL - EXPLAIN详解

概述 EXPLAIN: 为 SELECT语句中使用到的每个表返回一条信息。它按照MySQL在处理语句时读取它们的顺序列出这些表。MySQL使用循环嵌套算法解析所有连接。...意味着MySQL从第一个表读取一行,然后在第二个表,第三个表中找到匹配的行,等等。...QEP: SQL语句的查询执行计划 注意: 在以前版本的MySQL,使用 EXPLAIN PARTITIONS 与 EXPLAIN EXTENDED 来生成分区和扩展信息 。...目前为止这些语法仍然是向后兼容的,但未来 MySQL会将它们排除出 EXPLAIN语法,因为现在 EXPLAIN默认就会输出分区和扩展的相关信息。...(5.7才有) possiblekeys(JSON名: possiblekeys) 表示MySQL查找表的行时可选择的索引。请注意,此列完全独立于 EXPLAIN输出显示的顺序。

1.3K21
领券