数据库查询类型

数据库的查询语句前加explain,可以查看语句的查询计划,例如

explain select * from studen;

执行会出现

 id是查询语句中涉及到的表的优先度,id值越大的表越优先查询,值相同的从上向下执行,对应后面的table

select_type是查询类型,包括:

PRIMARY:包含子查询的sql语句的主查询(最外层最终要获取的结果)

SUBQUERY:包含子查询的sql语句的子查询(查询嵌套的内层)

SIMPLE:最简单的查询(不包含子查询等复杂查询方式以及union等)

DERIVED:衍(此字读yan)生查询(使用了临时表)

      (1)在from子查询中只有一个表

                      例如:学生表有name,sex和age字段,四条数据(张三,男,18)(李四,女,19),(王五,男,20),(张三 ,女,21)我们来查 一下年龄为18或19,名字叫张三的性别

explain select sst.sex from (select * from student where student.age in (18,19)) sst where sst.name='张三'

sst为子查询结果构成的临时表

      (2)在from子查询中有union关键字时第一个表为衍生表

explain select sst.sex from (select * from student where student.age=18 union select * from student where student.age=19)) sst where sst.name='张三'

这是括号里的两个student虽然是同一个表,但第一个类型为 DERIVED衍生表,第二个类型为union表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值