※本章节概念解释引用参考《数据库系统实现 第2版》
12.1 子查询提升概念解释
首先,我们得解释什么是子查询提升
优化器会我们写的SQL会构建一个查询树,如下:
select movieTitle
from StarsIn
where starName in (select name
from MovieStar
where birthdate like '%1960');
对应的查询树为
对应的表连接方式为Filter连接,Filter连接我们在之前章节说过多次,不再赘述。
数据库优化器会对此查询树的节点进行替换,比如如下方式:
查询树会变成如下形式
这样,Filter连接执行计划就会消除,优化器在执行计划的选择上会更加灵活。
12.2 子查询提升优化
本系列博客的Filter方面的优化主要就是说的子查询提升优化,大家可以参考。