explain的使用方法比较简单,就是直接用explain+sql语句即可,如下所示: 3. explain各字段说明 3.1 id select查询的序号,是一组数据,表示select语句的执行顺序,数字的值越大表示越先执行,如果数字值相等,则是按照从上到下的顺序进行执行。如: 先执行的就是:select role_id from role_menu where men
use index:表示相应的select中使用了覆盖索引,避免访问了表的数据行, 效率很好 using where:表明使用了where过滤。 using join buffer:使用了连接缓存。 3. 分析常见问题和优化建议 在分析EXPLAIN输出时,可以根据以下常见问题和优化建议进行评估: 全表扫描(ALL):如果type列显示为ALL,表示查询执行全表扫描,这通常是性...
Explain语句对select,delete,update,insert,replace语句有效。 id列: 表示执行顺序,值越大则优先级越高;值相同则从上而下执行 select_type列常见的有: simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个 primary:一个需要union操作或者含有子查询的select,位于...
EXPLAINSELECT*FROM`tb_student`WHEREidIN(SELECTstu_idFROMtb_classWHEREtea_idIN(SELECTidFROMtb_teacherWHERE`name`='马老师')); 根据原则,当id不同时,SQL从大到小执行,id相同则从上到下执行。 二、select_type 表示select查询的类型,用于区分各种复杂的查询,例如普通查询,联合查询,子查询等等。 SIMPLE 表示...
explain 1、id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。 id的三种情况: id相同:执行顺序由上至下 id不同:如果是子查询,id序号会递增,id值越大,优先级越高,越先被执行 id相同不同:同时存在相同和不同两种情况。 2、select_type:查询的类型,主要用于区别普通查询,子查询,联...
这可能是在 const 之外最好的联接类型了,简单的 select 查询不会出现这种 type。mysql> explain select * from film_actor left join film on film_actor.film_id = film.id;ref 相比 eq_ref,不使用唯一索引,而是使用普通索引或者唯一性索引的部分前缀,索引要和某个值相比较,可能会找到多个符合条件的行。
EXPLAIN [SELECT] statement ```二、Type 解释 在SQL Explain 的结果中,Type 字段表示查询的执行方式。Type 的取值及其含义如下:1.Ref:表示查询使用了引用完整性检查,即外键约束。2.Scalar:表示查询使用了标量子查询。3.Range:表示查询使用了范围查询。4.Index:表示查询使用了索引。5.All:表示查询将扫描所有...
type id select_type table possible_key key key_len ref rows extra 常用索引技巧 本文内容基于MySQL5.7 什么是Explain Explain是一个关键字,可以查询select语句的执行情况, 比如SQL可能使用什么索引,实际使用了什么索引。它的用法非常简单,在查询语句前加上explain关键字,执行后会得到类似下方的结果,里面的每一列会...
下面是一个最普通的查询语句,用EXPLAIN进行分析演示。结果:2. 结果的列的说明如下:id : SELECT识别符。这是SELECT查询序列号。这个不重要。select_type: 表示SELECT语句的类型。simple:简单select(不使用union或子查询)。primary:最外面的select。union:union中的第二个或后面的select语句。dependent union:union...
我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性地进行sql优化。今天我们来分析一下,在explain中11种不同type代表的含义以及其应用场景。1,system 应用场景:表中只有一条数据,且存储引擎可以准确的统计到这条数据。system一般出现在My...