mysql union与多个查询

时间:2010-10-20 15:08:38

标签: mysql union

我很想知道联盟是否比运行多个查询更好。

如果是这样,是否有时候由于其他原因,多个查询会更快或更受欢迎?

2 个答案:

答案 0 :(得分:9)

如果您使用UNION ALL并且不对输出进行排序,那么UNION的性能应该与多个单独查询的性能大致相同,假设查询与您一起UNIONing的查询相同。如果您对数据进行排序,显然您会增加一些开销(尽管可能比您在应用程序中排序时要少)。如果省略ALL关键字,MySQL将执行D​​ISTINCT-ing结果的额外工作。同样,这会产生额外的开销,尽管可能不如自己做。

答案 1 :(得分:0)

你问它是否“更好” - 我认为你指的是“表现明智”?

如果速度影响很小,您可能希望选择多个查询来保持代码的可读性;而不是在一个联盟中处理多个查询,做不同的事情。

取决于用例,当然。但是,可读和可理解的代码可能在长期的大项目中具有价值