mysql select type_mysql中explain的select_type值说明

select_type列提供了各种表示table列引用的使用方式的类型。最常见的值包括SIMPLE、PRIMARY、DERIVED和UNION。其他可能的值还有UNION RESULT、DEPENDENT SUBQUERY、DEPENDENT UNION、UNCACHEABLE UNION以及UNCACHEABLE QUERY。

1. SIMPLE

对于不包含子查询和其他复杂语法的简单查询,这是一个常见的类型。

2. PRIMARY

这是为更复杂的查询而创建的首要表(也就是最外层的表)。这个类型通常可以在DERIVED和UNION类型混合使用时见到。

3. DERIVED

当一个表不是一个物理表时,那么就被叫做DERIVED。下面的SQL语句给出了一个QEP中DERIVED select-type类型的示例:

mysql> EXPLAIN SELECT MAX(id)

-> FROM (SELECT id FROM users WHERE name = 'xiaoxiao') c;

4. DEPENDENT SUBQUERY

这个select-type值是为使用子查询而定义的。下面的SQL语句提供了这个值:

mysql> EXPLAIN SELECT pc.*

-> FROM products_class AS pc

-> WHERE pc.id NOT IN (SELECT p.cid FROM products AS p);

5. UNION

这是UNION语句其中的一个SQL元素。

6. UNION RESULT

这是一系列定义在UNION语句中的表的返回结果。当select_type为这个值时,经常可以看到table的值是,这说明匹配的id行是这个集合的一部分。

下面的SQL产生了一个UNION和UNION RESULT select-type:

mysql> EXPLAIN SELECT p.* FROM products ASp WHERE p.product_name

LIKE '小米%'

-> UNION

-> SELECT p.* FROM products AS p WHERE p.id > 5;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值