对于新闻门户网站的主页(由PHP和MySQL支持),我需要从一个类别中获得9篇文章,从另一个类别中获得9篇文章,并从任何类别中获得28篇最新文章。哪种方法是最快的?
我发现了一些解决方案,可以在单个查询中从多个类别中获取指定数量的文章,但它们都为每个类别返回相同数量的文章,这不适合我的问题。而且他们还使用了IF语句,我觉得这在速度方面不是最好的(?)
我应该只做3个查询吗?或者使用UNION ALL将所有内容放在一个查询中?
发布于 2013-03-06 04:05:56
我不认为您可以在(非UNION或subselect)查询中实现您想要做的事情。
就多个查询与UNION或子select而言,这取决于查询的速度。多个小查询可能会在查询/获取响应时产生重复的开销。在并发性和与其他查询的良好配合方面,更小的查询通常在与其他查询的竞争方面更适合数据库。
发布于 2013-03-06 04:06:09
当您使用union或union all执行一个查询时,它将比三个单独的查询更快,因为您节省了通信开销。
还要考虑使用union而不是union all,因为union all保留了重复的行。
https://stackoverflow.com/questions/15233028
复制相似问题