0

对于新闻门户的主页(由 PHP 和 MySQL 提供支持),我需要获取一个类别的 9 篇文章、另一个类别的 9 篇文章和任何类别的 28 篇最新文章。哪种方法最快?

我发现一些解决方案可以处理在单个查询中从多个类别中获取指定数量的文章,但是它们都为每个类别返回相同数量的文章,这不适合我的问题。他们还使用 IF 语句,我觉得这不是最好的速度(?)

我应该只做3个查询吗?还是使用 UNION ALL 将其全部放在一个查询中?

4

2 回答 2

0

UNION我认为您无法在(非或子选择)查询中实现您想要做的事情。

就多个查询与 UNION 或子选择而言,它取决于查询的速度。多个小查询可能会在查询/获取响应时产生重复的开销。在并发性和与其他查询的良好配合方面,更小的查询通常在与其他查询竞争方面对数据库更好。

于 2013-03-05T20:05:56.223 回答
0

当您使用unionor进行一次查询时union all,它会比三个单独的查询更快,因为您节省了通信开销。

还要考虑union代替union all,因为union all保留重复的行。

于 2013-03-05T20:06:08.553 回答