一、SQL Explain 简介 1.SQL Explain 的作用 2.SQL Explain 的语法 二、Type 解释 1.Type 的概念 2.Type 的取值及其含义 2.1 Ref 2.2 Scalar 2.3 Range 2.4 Index 2.5 All 2.6 None 三、Type 在实际应用中的场景及优化建议 1.Ref 的使用及优化建议 2.Scala
通过查看MySQL优化的执行sql,可以看到MySQL将in子查询优化为了exist语句,并且在主键索引上进行了等值查询。MySQL优化后的语句:/* select#1 */ select `dbs`.`t2`.`id` AS `id`,`dbs`.`t2`.`key2` AS `key2` from `dbs`.`t2` where (<in_optimizer>(`dbs`.`t2`.`key2`,<exists>(<primary_in...
explain-SQL语句执行计划分析 explain https://www.cnblogs.com/xiaoboluo768/p/5400990.html http://blog.51cto.com/lijianjun/1881208 id:查询序号 select_type:查询类型 table:查询针对的表 有可能是 ...阿里巴巴的开发分支管理 前言 在阿里工作时使用的各种系统,仿佛像空气和水一样,仿佛是理所应当就应该...
primary key 或 unique key 索引的所有部分被连接使用 ,最多只会返回一条符合条件的记录。这可能是在 const 之外最好的联接类型了,简单的 select 查询不会出现这种 type。mysql> explain select * from film_actor left join film on film_actor.film_id = film.id;ref 相比 eq_ref,不使用唯一索引,而是...
explain与sql语句一起使用时,mysql将显示来自优化器的相关语句执行计划的信息。 #2、explain结果分析:type:连接类型,如system,const,eq_ref,ref,range,index,all等key:实际使用的索引,null表示未使用索引rows:扫描的行数filtered:选取的行数占扫描的行数的百分比 #3、示例代码如下:explainselect ...
explain结果中的type字段 常见的type结果及代表的含义,并且通过同一个SQL语句的性能差异,说明建对索引多么重要。 explain结果中的type字段代表什么意思? MySQL的官网解释非常简洁,只用了3个单词:连接类型(the join type)。它描述了找到所需数据使用的扫描方式。
对于MySQL执行计划的获取,我们可以通过explain方式来查看,explain方式看似简单,实际上包含的内容很多,尤其是输出结果中的type类型列。理解这些不同的类型,对于我们SQL优化举足轻重。今天主要介绍一下常见的type结果及代表的含义,并且通过同一个SQL语句的性能差异,说明建对索引多么重要。
我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。 今天我们来分析一下,在explain中11种不同type代表的含义以及其应用场景。 1、system 应用场景:表中只有一条数据,且存储引擎可以准确的统计到这条数据。
上图所示第一条SQL语句查询结果只有一条记录,但是下面explain的结果显示type值却是all。 这里要理解清楚,const是表示mysql优化器在执行语句之前判断其结果肯定只有一条记录,因为id作为主键具有唯一性,id=常量肯定只有一条结果,因此mysql只有读取到第一条记录就可以停止查询直接返回结果。而第二个例子中,name字段既不是...
4.type=ref,使用非唯一索引或唯一索引的前缀扫描,返回匹配某个单独值的记录行 store_id字段存在普通索引(非唯一索引) EXPLAIN SELECT*FROM customer WHERE store_id=10; ref类型还经常会出现在join操作中: customer、payment表关联查询,关联字段customer.customer_id(主键),payment.customer_id(非唯一索引)。表关联查...