sql中union多表合并Sql性能优化之UNION、UNIONALL
SQL UNION 操作符
UNION 操作符⽤于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
1、SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使⽤ UNION ALL。
2、SQL UNION ALL 语法
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
另外,UNION 结果集中的列名总是等于 UNION 中第⼀个 SELECT 语句中的列名。
优化:
UNION 因为会将各查询⼦集的记录做⽐较,故⽐起UNION ALL ,通常速度都会慢上许多。⼀般来说,如果使⽤UNION ALL能满⾜要求的话,务必使⽤UNION ALL。
还有⼀种情况不能忽略掉,就是虽然要求⼏个⼦集的并集需要过滤掉重复记录,但由于脚本的特殊性,不可能存在重复记录,这时便应该使⽤UNION ALL,如xx模块的某个查询程序就曾经存在这种情况,见,由于语句的特殊性,在这个脚本中⼏个⼦集的记录绝对不可能重复,故可以改⽤UNION ALL)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论