2)primary:复杂查询中最外层的 select 3)subquery:包含在 select 中的子查询(不在 from 子句中)4)derived:包含在 from 子句中的子查询。MySQL会将结果存放在一个临时表中,也称为派生表(derived的英文含义) 用这个例子来了解 primary、subquery 和 derived 类型 mysql> explain select (select1from actor...
Explain被称为执行计划,在语句之前增加 explain 关键字,MySQL会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。(注意,如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。 Explain可以用来分析SQL语句和表结构的性能瓶颈。通过explain的结果,可以...
unique_subquery:该类型替换了下面形式的IN子查询的ref: value IN (SELECT primary_key FROM single_table WHERE some_expr) unique_subquery是一个索引查找函数,可以完全替换子查询,效率更高。index_subquery:该联接类型类似于unique_subquery。可以替换IN子查询,但只适合下列形式的子查询中的非唯一索引: value IN ...
SUBQUERY:在SELECT或WHERE列表中包含了子查询 DERIVED:在from列表中包含的子查询被标记为DERIVED(衍生),MySQL会递归执行这些子查询,将结果放在临时表中。 UNION:若第二个select出现在UNION之后,则被标记为UNION,若UNION包含在form子句的子查询中,外层select将被标记为DERIVED UNION RESULT:从UNION表获取结果的select 3、...
- SUBQUERY - DEPENDENT SUBQUERY 3.3 table 这个指的当前执行的sql语句查询的表 3.4 partitions 代表分区表中的命中情况,非分区表,该项为NULL,一般情况下我们的查询语句的执行计划的partitions的列的值都是NULL 3.5 type 主要是用来显示查询使用了那种类型,其类型主要有以下几种,且其性能从大到小为:system > const...
SQL性能优化神器:explain 执行计划,随着用户量和数据量的不断增加,慢查询是无法避免的问题。一般情况下如果出现慢查询,意味着接口响应慢、接口超时等问题。如果是高并发的场景,可能会出现数据库连接被占满的情况,直接导致服务不可用。慢查询的确会导致很多问题,我们
最完整的Explain总结,妈妈再也不担心我的SQL优化了 2)primary:复杂查询中最外层的 select 3)subquery:包含在 select 中的子查询(不在 from 子句中) 4)derived:包含在 from 子句中的子查询。MySQL会将结果存放在一个临时表中,也称为派生表(derived的英文含义) 用这个例子来了解 primary、subquery 和 derived 类...
SUBQUERY: 在select或where中包含了子查询。 DERIVED: 在from列表中包含的子查询被标记为derived(衍生),把结果放在临时表。 UNION: 若第二个select出现的union之后,则被标记为union ,若union包含在from子句的子查询中,外层select将被标记为deriver UNION RESULT: 从union表获取结果select,两个UNION合并的结果集在最后...
select_type:查询的类型,例如 SIMPLE(简单查询)、PRIMARY(主查询)、SUBQUERY(子查询)等。 table:执行查询的表名。 type:查询的访问类型。常见的值有: ALL:全表扫描。表示查询没有使用索引,可能会导致性能问题。 index:索引扫描。表示查询使用了索引,但仍然需要扫描整个索引。 range、ref:表示查询使用了索引并且只扫...
type:访问类型,sql查询优化中一个很重要的指标,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL,一般来说,好的sql查询至少达到range级...