news 2026/4/15 10:13:06

union 和 union all的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
union 和 union all的区别

1、union和union all

UNION对两个结果集进行并集操作,不包括重复行,相当于使用distinct关键字。而UNION ALL则对两个结果集进行并集操作,包括重复行,即所有结果全部显示,不管是否重复。
UNION操作会去除重复的记录,只返回唯一的记录。而UNION ALL操作则不会去除重复记录,会直接连接所有的值。
UNION操作会按照字段的顺序进行排序,而UNION ALL操作则不会对结果进行排序。因此我们在项目中能用union all的就使用union all,避免union排序去重增加性能。

2、 问题语句

selectcount(*)from(select t1.* from test t1,(select distinct c1 from test1)t2 where t1.c2=t2.c1 union select t1.* from test t1 where t1.c2 is null)tt;

计划:

这个语句实际上并不需要用到union,因为t1.c2=t2.c1这一个条件排除了t1.c2 为空值的情况,而t2中先对c1去重(distinct)也避免了产生重复值,最后求的是t1.*包含了表的主键,主键具有唯一性,因此原本逻辑上不会产生重复值,这样就不用使用union 对结果集去重了。因此可以改写成union all

3、改写

selectcount(*)from(select t1.* from test t1,(select distinct c1 from test1)t2 where t1.c2=t2.c1 union all select t1.* from test t1 where t1.c2 is null)tt

计划:

语句从原来的1.073s提升至0.348s。

4、小结

union有对结果集去重的效果,如果结果集的查询项中列长较长,那么所用的时间也会增加,因此,慎用union。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 13:58:09

爱心公益 PPT 一键生成平台 TOP6,无需设计基础也能做

6款好用工具推荐,新手也能搞定爱心公益PPT一键生成 作为经常帮公益组织和校园社团做PPT的过来人,我太懂新手做爱心公益PPT的痛点了:找模板耗半天、排版没思路、素材怕侵权,最后熬夜做出来的效果还不尽如人意。其实现在有很多实用工…

作者头像 李华
网站建设 2026/4/7 14:17:45

中小企业必看!RFID资产管理系统,不用大投入也能高效管资产

跟不少中小企业老板和运维聊过,发现大家对资产管理都有个矛盾心理:想做好管理,又怕投入太多成本,最后得不偿失;放任不管,又总被资产混乱、盘点耗时、流失浪费等问题拖后腿。尤其是对于人员精简、预算有限的…

作者头像 李华
网站建设 2026/4/15 5:37:09

互联网大厂Java面试场景:从Spring到微服务的技术探讨

互联网大厂Java面试场景:从Spring到微服务的技术探讨 场景:互联网大厂面试现场 面试官是一位经验丰富的技术专家,而求职者“超好吃”则是一位刚刚准备进入互联网大厂的Java小白程序员。面试官开始了严肃而循序渐进的面试。 第一轮提问&…

作者头像 李华
网站建设 2026/4/12 20:31:38

智能体持久性记忆实战:从0到1构建双路记忆堆栈

本文介绍如何为智能体构建持久性记忆系统,通过双路记忆堆栈(情节记忆语义记忆)解决智能体健忘问题。情节记忆使用向量数据库存储对话历史,语义记忆使用图数据库存储结构化事实。文章详细展示了实现方法、代码构建及实际应用&#…

作者头像 李华
网站建设 2026/4/13 17:47:37

大模型学习全攻略:从零基础到AI专家的系统路线,【2026首发】AI大模型学习路线:适合新手和大学生

本文提供了从入门到高级的大模型学习完整路线,涵盖Python编程、数学基础、机器学习、深度学习等基础知识,以及自然语言处理、计算机视觉等进阶内容,并提供实战案例和学习资源,帮助小白和程序员系统掌握大模型技术,实现…

作者头像 李华
网站建设 2026/4/10 15:27:44

第三章 异常(一)

第三章 异常(一) 条款9:利用destructors避免泄露资源 一、核心概念解析 首先,我们要理解这个条款解决的核心问题:手动管理资源(如内存、文件句柄、网络连接等)时,容易因忘记释放、程序提前退出(…

作者头像 李华