explain的select_type

分析sql的时候,我们会用explain。

explain的字段:


第一个字段是id。id越大越先执行,id相同从上至下执行。

我们主要讲讲select_type。

我们加上一张location表,并且在tbl_dept中添加location_id字段:



首先是简单查询:


直接select * from的select_type就是SIMPLE

然后是子查询和主要查询:


tbl_emp和location都是SUBQUERY

而tbl_dept却是PRIMARY。它的意思是它是主要查询,就是最外层的查询,最后一个轮到它。

看这条sql:

出现了衍生表,或者说是虚表:from (select .....)

mysql认为这样的查询类型就是DERIVED

+----+-------------+------------+------------+--------+---------------+------+---------+------+------+----------+----------------+
| id | select_type | table      | partitions | type   | possible_keys | key  | key_len | ref  | rows | filtered | Extra          |
+----+-------------+------------+------------+--------+---------------+------+---------+------+------+----------+----------------+
|  1 | PRIMARY     | <derived2> | NULL       | system | NULL          | NULL | NULL    | NULL |    1 |   100.00 | NULL           |
|  1 | PRIMARY     | t1         | NULL       | ALL    | NULL          | NULL | NULL    | NULL |    7 |   100.00 | NULL           |
|  2 | DERIVED     | NULL       | NULL       | NULL   | NULL          | NULL | NULL    | NULL | NULL |     NULL | No tables used |
+----+-------------+------------+------------+--------+---------------+------+---------+------+------+----------+----------------+

<derived2>表示是从id为2的表衍生的。

当我们使用union的时候:

还会出现UNIONUNION RESULT两个select_type。

它们分别表示联合查询和联合查询的结果。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值