• explain执行计划详解


    explain执行计划分析,是SQL优化的重要手段。本节内容:

    • explain各属性代表的含义。
    EXPLAIN SELECT * FROM department d ;
    
    id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows|filtered|Extra|
    --|-----------|-----|----------|----|-------------|---|-------|---|----|--------|-----|
     1|SIMPLE     |d    |          |ALL |             |   |       |   |   2|     100|     |
    

    id

    id表示查询中执行 select 子句或操作表的顺序。id的执行顺序规则:

    • id越大,越先执行。
    • id相同,则按从上到下顺序执行。

    id相同

    EXPLAIN SELECT * FROM employee e ,department d ,customer c 
    WHERE e.cus_id = c.id AND e.dep_id = d.id ;
    

    image

    id不同

    EXPLAIN SELECT * FROM department 
    WHERE id = ( SELECT id FROM employee WHERE id =( SELECT id FROM customer WHERE id = 1 ));
    

    EXPLAIN SELECT * FROM department d, (SELECT dep_id FROM employee GROUP BY dep_id) t
    WHERE d.id = t.dep_id;
    

    image

    select_type

    • simple:简单查询,不含子查询、UNION
    • primary:复杂查询的最外层查询
    • subquery:子查询
    • derived:当from后包含子查询时,标记为derived--临时表
    • union:union之后的标记位union,前面的是primary

    table:所属表

    partitions:分区

    type 访问类型(很重要!!)

    • system:系统只有一条记录,不会出现。memory引擎
    • const:通过主键或者唯一索引,定位到一条数据
    • eq_ref:使用主键或者唯一性索引扫描
    EXPLAIN SELECT * FROM employee e , department d 
    WHERE e.id = d.id;
    

    • ref:非唯一性索引扫描。多出现在多表连接操作。
    • range:索引的某个范围查找
    • index:扫描索引树
    • all:全表扫描

    type 最好能达到index之上。

    版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    css3实现轮播2
    css3实现轮播1
    读阮一峰ES6笔记4:字符串的新增方法
    读阮一峰ES6笔记3:字符串的扩展
    应用流策略与检查配置结果
    配置流策略
    配置流行为
    配置流分类
    "流量监管"和"流量整形"的区别
    802.1p 优先级与内部优先级的映射关系
  • 原文地址:https://www.cnblogs.com/dtyy/p/15518812.html
Copyright © 2020-2023  润新知