MySQL 性能分析 - Explain

MySql Query Optimizer(mysql 查询优化器)

MySQL 性能分析 - Explain

MySql 常见瓶颈

MySQL 性能分析 - Explain

Explain

Explain 介绍

MySQL 性能分析 - Explain

Explain 的作用

MySQL 性能分析 - Explain

Explain 的使用

Explain + SQL语句

执行计划包含的信息:
MySQL 性能分析 - Explain

Explain 的字段解释

id

select查询的***,包含一组数字,表示 查询中执行select子句或者操作表的顺序

三种情况:
id相同,执行顺序由上至下

如下示例:表示执行顺序
MySQL 性能分析 - Explain

id不同,如果是子查询,id序号会递增,id值越大优先级越高,越先被执行
MySQL 性能分析 - Explain

id相同不同,同时存在
MySQL 性能分析 - Explain

select_type

MySQL 性能分析 - Explain
查询类型,主要是用于区别 普通查询,联合查询,子查询等的复杂查询
MySQL 性能分析 - Explain

table

显示这一行数据是关于哪张表的

type

MySQL 性能分析 - Explain

访问类型排列
MySQL 性能分析 - Explain

各类型解释:
MySQL 性能分析 - Explain

possible_keys

MySQL 性能分析 - Explain

key

MySQL 性能分析 - Explain
MySQL 性能分析 - Explain

key_len

MySQL 性能分析 - Explain

ref

MySQL 性能分析 - Explain
MySQL 性能分析 - Explain

rows

MySQL 性能分析 - Explain
MySQL 性能分析 - Explain

Extra

Extra : 包含不适合在其他列中显示但十分重要的额外信息

  1. Using filesort (要避免)
    MySQL 性能分析 - Explain
    MySQL 性能分析 - Explain

  2. Using temporary (要避免)
    MySQL 性能分析 - Explain
    MySQL 性能分析 - Explain

  3. Using index
    MySQL 性能分析 - Explain
    MySQL 性能分析 - Explain

  4. Using where
    表明使用了where过滤

  5. Using join buffer
    使用了连接缓存

  6. impossible where
    MySQL 性能分析 - Explain

  7. select tables optimized a way
    MySQL 性能分析 - Explain

  8. distinct
    MySQL 性能分析 - Explain

覆盖索引

MySQL 性能分析 - Explain

代码示例

MySQL 性能分析 - Explain
MySQL 性能分析 - Explain