SQL优化案例分享(⼀)union和unionall
#优化前:110s,优化后:0.185s
要善于查看执⾏计划:unique的cost是最⼤的,占到了很多。
情形⼀:⼦查询中多⽤union。
我们都知道,最⼩范围unique可以提⾼速度,因此在sql⼦查询中,尽可能避免写union all,如果逻辑上改变不了,那么就改成union先实现内部排重;例⼦:
select .... from A
left join (
sql中union多表合并(select .... from B)B1 union (select ... from C)C1 on B1.id=C1.id
)B2
on A.id=B2.id
情形⼆:⾮⼦查询查询结果合并union all要⽐union 效率⾼,但是业务上要保证各个部分数据不重复。
例⼦:
select .... from A
union all
select .... from B
union all
...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论