SELECT *
FROM { SELECT * FROM BigMillionTable UNION ALL SELECT * FROM SmallTensTable }
WHERE (some_condition)
VS
SELECT *
FROM BigMillionTable
WHERE (some_condition)
UNION ALL
SELECT *
FROM SmallTensTable
WHERE (some_condition)
我的问题:
BigMillionTable
执行UNION ALL
吗?答案 0 :(得分:1)
where条件实际上是在选择之前执行的,因此在第二个查询中,您只对较小的集合进行所有并集,因此应该更快。
在第一个查询中,将首先运行内部查询,该查询将对整个表进行所有并集,然后在选择记录之前在何处执行
。是的,第二个将比第一个提供更好的性能