关于使用 from 子查询替代where子查询疑惑?

来源:3-6 CRUD操作(二)

小飞猪来了

2019-06-21

老师,请教一下。这两个子查询使用 explain 来分析,发现几乎没差别。那我们工作中怎么才能知道两个sql的执行效率呢?

explain select empno, ename from t_emp where sal > (select sal from t_emp where empno = 7499) and empno != 7499

explain select e.empno, e.ename from t_emp e join (select sal from t_emp where empno = 7499) t on e.sal >t.sal and e.empno != 7499

where 子查询 explain:
图片描述

from 子查询 explain:
图片描述

写回答

1回答

神思者

2019-06-21

同学你好,关于EXPLAIN的具体用法和分析可以参考这个帖子。https://www.cnblogs.com/galengao/p/5780958.html

比较两个SQL的执行结果,看select_type,如果有子查询出现,效率是非常低的。还有就是看type,const比range快。还有filtered,第一次能过滤掉的内容越多越好。

1
5
小飞猪来了
回复
神思者
感谢老师。可以了
2019-06-24
共5条回复

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程