我很想知道联盟是否比运行多个查询更好。
如果是这样,是否有时候由于其他原因,多个查询会更快或更受欢迎?
答案 0 :(得分:9)
如果您使用UNION ALL并且不对输出进行排序,那么UNION的性能应该与多个单独查询的性能大致相同,假设查询与您一起UNIONing的查询相同。如果您对数据进行排序,显然您会增加一些开销(尽管可能比您在应用程序中排序时要少)。如果省略ALL关键字,MySQL将执行DISTINCT-ing结果的额外工作。同样,这会产生额外的开销,尽管可能不如自己做。
答案 1 :(得分:0)
你问它是否“更好” - 我认为你指的是“表现明智”?
如果速度影响很小,您可能希望选择多个查询来保持代码的可读性;而不是在一个联盟中处理多个查询,做不同的事情。
取决于用例,当然。但是,可读和可理解的代码可能在长期的大项目中具有价值