UNION和UNION ALL的适用场合是将两个结果集合并后返回,但是有什么区别呢?1、根本区别,UNION会在将两个结果集合并后,对合并后的结果集进行排序,删除重复的结果。而UNION ALL则只是将两个结果集简单的合并,不会去除重复记录。
2、在执行效率方面,UNION ALL 效率要明显高于UNION,原因是,UNION在合并结果集后的排序删除重复的进程很费时间。如果用户在能确定合并结果集后不会产生重复记录的情况下,尽量选择执行效率更高的UNION ALL。

解决方案 »

  1.   

    Union是去掉连接后的重复记录union all不去掉连接后的重复记录,只是简单的合并记录
      

  2.   

    UNION 将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存。对于这块内存的优化也是相当重要的。
      

  3.   

    涉及到排序和去重复,因此关系着效能问题,很多是根据业务需求来选择用UNION 还是UNION ALL 
    楼主在给我们温习啊!
    支持!
      

  4.   

    又能学习又能接分..
    以前真不知道union 会排序,只知道union与union all的区别一个去重一个不去重...
      

  5.   

    http://blog.csdn.net/wh62592855/archive/2009/10/23/4712555.aspx
      

  6.   


    一般我都用union all的。