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 需要联表,是同理吗?
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 需要联表,是同理吗?
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
一般来说, 第一个效率高一些.
1. 第二个查询无法用到 索引;
2. 第二个查询 会用到一个匿名临时表, 如果内存不够用的话, 问题就比较大了.