使用:explain + select 语句
输出格式
下面逐一解释各个含义
id
- id相同,执行顺序由上向下
- 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行
- id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大优先级越高,越先执行。
select_type
- Simple 简单的 select 查询,查询中不包含子查询或 UNION
- Primary 查询中若包含任何复杂的字部分,最外层查询则被标记为
- Subquery 在 select 或 where 列表中包含了子查询
- Derived 在 from 列表中包含的子查询被标记为derived(衍生) mysql会递归这行这些子查询,把结果放在临时表中
- Union 若第二个 select 出现在 union 之后,则被标记为 union ,若 union 包含在 from 子句的子查询中,外层 select 将被标记为derived
- Union Result 从 union 表获取结果的 select
Table
显示这行数据是关于哪张表的
Type
类型从最好到最差排序如下
system > const > eq_ref > ref > range > index > all
后续明日补上