-
子查询扁平化-线性代数及其应用中文版下载
资源介绍
四、子查询扁平化
例子:SELECT a FROM (SELECT x+y AS a FROM t1 WHERE z<100) WHERE a>5
对这个 SQL语句的执行一般默认的方法就是先执行内查询,把结果放到一个临时表中,再
对这个表进行外部查询,这就要对数据处理两次,另外这个临时表没有索引,所以对外部查询就不能
进行优化了,如果对上面的 SQL 进行处理后可以得到如下 SQL语句:SELECT x+y AS a FROM t1 WHERE
z<100 AND a>5,这个结果显然和上面的一样,但此时只需要对
数据进行查询一次就够了,另外如果在表 t1上有索引的话就避免了遍历整个表。
运用 flatten方法优化 SQL的条件:
1.子查询和外查询没有都用集函数
2.子查询没有用集函数或者外查询不是个表的连接
3.子查询不是一个左外连接的右操作数
4.子查询没有用 DISTINCT或者外查询不是个表的连接
5.子查询没有用 DISTINCT或者外查询没有用集函数
6.子查询没有用集函数或者外查询没有用关键字 DISTINCT
7.子查询有一个 FROM语句
8.子查询没有用 LIMIT或者外查询不是表的连接
- 上一篇: 获得一个独享锁-线性代数及其应用中文版
- 下一篇: 如何打开关闭数据库-线性代数及其应用中文版