首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

mysql explain type连接类型示例

对于MySQL执行计划的获取,我们可以通过explain方式来查看,explain方式看似简单,实际上包含的内容很多,尤其是输出结果type类型列。...理解这些不同的类型,对于我们SQL优化举足轻重,本文仅描述explian输出结果type列,同时给出其演示。...有关explian输出的全描述,可以参考:MySQL EXPLAIN SQL 输出信息描述 一、EXPLAIN 语句中type列的值 type: 连接类型 system...如将主键或者唯一索引置于where列表MySQL就能将该查询转换为一个常量 (root@localhost) [sakila]> create table t1(id int,ename varchar...=NULL MySQL不用访问表或者索引就可以直接得到结果 (root@localhost) [sakila]> explain select sysdate(); +----+------------

1.5K10

explain语法---type字段案例

xplain语法---type字段案例 今天上班的时候遇到的一个慢日志问题,我在这里进行一个复盘,记录下,也帮助我自己对于explain语法的结果有个更深的了解。...InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 我们可以看到,这个表有一个主键,是id字段,一个二级联合索引,分别是age和score字段,然后我们插入数据: mysql...mysql> explain select age from test3 where score=4; +----+-------------+-------+-------+-------------...我们再看上面的explain语句,我们可以发现这个语句的possible_keys值是null,而key的值是idx_age_score,扫描行数rows是6,也就是进行了全索引树的扫描,将表的所有记录都进行了扫描...今天跟业务方讨论之后,发现他们创建的联合索引利用率不高,表的数据也不多,一万来条,而查询语句对score列的依赖比较严重。

42120

谈谈MYSQLExplain

,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。...(注意,如果 from 包含子查询,仍会执行该子查询,将结果放入临时表)。Explain结果是基于数据表现有数据的。...Explain结果与MySQL版本有很大的关系,不同版本的优化器的优化策略不同。...语法:explain sql语句示例:mysql> explain select * from actor;+----+-------------+-------+------+------------...通 过结果的key_len=4可推断出查询使用了第一个列:film_id列来执行索引查找。type对表访问方式,表示MySQL在表中找到所需行的方式,又称“访问类型”。

22321

mysql explain ref列_MySQL EXPLAIN详解

MySQL EXPLAIN详解:http://www.jianshu.com/p/ea3fc71fdc45 MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain...key_len 显示mysql在索引里使用的字节数 ref 显示了之前的表在key列记录的索引查找值所用的列或常量 rows 为了找到所需的行而需要读取的行数,估算值,不精确。...select_type 表示查询的类型 类型 说明 simple 简单子查询,不包含子查询和union primary 包含union或者子查询,最外层的部分标记为primary subquery 一般子查询的子查询被标记为...要想强制MySQL使用或忽视possible_keys列的索引,在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。...Extra Extra是EXPLAIN输出另外一个很重要的列,该列显示MySQL在查询过程的一些详细信息,MySQL查询优化器执行查询的过程对查询计划的重要补充信息。

3.4K60

mysql explain ref null_MySQL Explain详解

MySQL Explain详解 简介 执行计划(query Execution plan) 语法 explain select * from table explain 的列 expain出来的信息有...例如,派生表可以来自FROM子句中的子查询 :该行指的是id 值为的行的具体化子查询的结果N 四、type 表示MySQL在表中找到所需行的方式,又称“访问类型”。...通常,您可以ALL通过添加基于常量值或早期表的列值从表启用行检索的索引来避免 五、possible_keys 该possible_keys列指示MySQL可以选择在此表查找行的索引,指出MySQL...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。...根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数 十、Extra 该Extra列 EXPLAIN输出包含MySQL解决查询的额外信息。

1.7K40

MySQL EXPLAIN详解

相关文章: MySQL高性能表设计规范:http://www.jianshu.com/p/f797bbe11d76 MySQL EXPLAIN详解:http://www.jianshu.com/p/ea3fc71fdc45...image.png MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。...select_type 表示查询的类型 类型 说明 simple 简单子查询,不包含子查询和union primary 包含union或者子查询,最外层的部分标记为primary subquery 一般子查询的子查询被标记为...type type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge...Extra Extra是EXPLAIN输出另外一个很重要的列,该列显示MySQL在查询过程的一些详细信息,MySQL查询优化器执行查询的过程对查询计划的重要补充信息。

1.2K90

Mysql Explain 详解

在日常工作,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引...(QEP:sql生成一个执行计划query Execution plan) mysql> explain select * from servers; +----+-------------+-----...如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 3.id如果相同,可以认为是一组,从上往下顺序执行;在所有组,id值越大,优先级越高,越先执行 二、select_type 示查询每个...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。...• EXPLAIN不考虑各种Cache • EXPLAIN不能显示MySQL在执行查询时所作的优化工作 • 部分统计信息是估算的,并非精确值 • EXPALIN只能解释SELECT操作,其他操作要重写为

1K20

MySQL Explain详解

MySQL Explain详解 ?...上图是使用Explain分析的一条sql语句,下面我们来看一下各个字段的具体含义是什么 expain出来的信息有10列,分别是id、select_type、table、type、possible_keys...id值越大,优先级越高,越先执行 二、select_type 示查询每个select子句的类型 (1) SIMPLE(简单SELECT,不使用UNION或子查询等) (2) PRIMARY(查询若包含任何复杂的子部分...五、possible_keys 指出MySQL能使用哪个索引在表中找到记录,查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询使用 该列完全独立于EXPLAIN输出所示的表的次序。...如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引) 如果没有选择索引,键是NULL。

1.1K10

Mysql 令人稀里糊涂的Explain

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

22450

mysqlexplain介绍

我们对系统性能分析的一部分就是数据库的分析,比如定位到查询速度慢的SQL,我们想对其进行优化,但是从哪些方面进行优化,就需要使用explain来查看select语句的执行计划。...explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,对我们的查询语句进行分析,提升性能。...select_type常用的类型: SIMPLE 简单的select查询,查询不包含子查询或者UNION PRIMARY 查询若包含任何复杂的子部分,最外层查询则被标记为PRIMARY...SUBQUERY 在SELECT或WHERE列表包含了子查询 DERIVED 在FROM列表包含的子查询被标记为DERIVED(衍生),MySQL会递归执行这些子查询,把结果放在临时表...如将主键置于where列表MySQL就能将该查询转换为一个常量。

39830

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.3K20
领券