mysql union all 的效率问题
我有几个相同结构的表,需要进行联表查询,我使用如下的语句
select sum(cnt) from (select count(*) as cnt from t1 where a>100 union all select ...) as t;
这一句拿总和的挺快。
select * from t1 where a>100 union all select * from t2 where a>100 union all select * from t3 where a>100 order by b desc limit 0,10000;
这一句效率好像很低,等了很久才出来结果。
应该如何优化,谢谢
相关推荐
5分钟了解MySQL5.7中union all用法的黑科技
本文带领大家通过5分钟了解MySQL5.7中union all用法的黑科技,需要的朋友可以参考下
MySQL中UNION与UNION ALL的基本使用方法
主要给大家介绍了关于MySQL中UNION与UNION ALL的基本使用方法,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
MySQL UNION详解[代码]
本文详细介绍了MySQL中的UNION操作符,包括其基本概念、语法结构、使用规则和限制。UNION操作符用于合并两个或多个SELECT语句的结果集,默认去除重复行,而UNION ALL则保留所有行。文章对比了UNION与UNION ALL的区别,强调了性能考虑,建议在不需要去重时使用UNION ALL以提高效率。此外,还提供了示例演示,展示了如何合并两个表的数据,并解释了结果。最后,文章总结了使用UNION时的注意事项,如性能优化、排序和分页、数据类型兼容性以及错误处理,帮助读者在实际应用中更好地使用UNION操作符。
MySQL union 语法代码示例分析
代码如下: SELECT … UNION [ALL | DISTINCT] SELECT … [UNION [ALL | DISTINCT] SELECT …] SELECT … UNION [ALL | DISTINCT] SELECT … [UNION [ALL | DISTINCT] SELECT …] UNION 用于把来自许多SELECT语句的结果组合到一个结果集合中。 (如果你要将多个表的查询结果进行合并输出比如说 群组消息跟个人消息表是分离的但是想一起提取出来并显示的话就可以如此处理。通过MySQLUNION联合查询出来即可) 列于每个SELECT语句的对应位置的被选择的列应具
浅谈mysql中多表不关联查询的实现方法
大家在使用MySQL查询时正常是直接一个表的查询,要不然也就是多表的关联查询,使用到了左联结(left join)、右联结(right join)、内联结(inner join)、外联结(outer join)。这种都是两个表之间有一定关联,也就是我们常常说的有一个外键对应关系,可以使用到 a.id = b.aId这种语句去写的关系了。这种是大家常常使用的,可是有时候我们会需要去同时查询两个或者是多个表的时候,这些表又是没有互相关联的,比如要查user表和user_history表中的某一些数据,这个时候就是所谓的不关联查询了。 这时候用的是union all语句。比如: </pre> <p


基础编程
