select A,B,C from T1 where A...
union all
select A,B,C from T2 where A...
与
select * from (
select A,B,C from T1
union all
select A,B,C from T2
)where A ...
哪个效率会高些?和数据量有关么?如果T1和T2 需要联表,是同理吗?
一般来说, 第一个效率高一些.
1. 第二个查询无法用到 索引;
2. 第二个查询 会用到一个匿名临时表, 如果内存不够用的话, 问题就比较大了.