union 条件的效率问题

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 需要联表,是同理吗?

阅读 4.6k
1 个回答

一般来说, 第一个效率高一些.
1. 第二个查询无法用到 索引;
2. 第二个查询 会用到一个匿名临时表, 如果内存不够用的话, 问题就比较大了.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题