0

ニュース ポータル (PHP と MySQL を使用) のホームページでは、あるカテゴリから 9 つの記事、別のカテゴリから 9 つの記事、任意のカテゴリから 28 の最新の記事を取得する必要があります。それを行う最も速い方法はどれですか?

単一のクエリで複数のカテゴリから指定された数の記事を取得することを扱ういくつかのソリューションを見つけましたが、それらはすべて、すべてのカテゴリに対して同じ数の記事を返します。これは私の問題に適合しません。また、彼らはIFステートメントを使用していますが、これは速度的には最善ではないと感じています(?)

3つのクエリを実行する必要がありますか? または、UNION ALL を使用してすべてを 1 つのクエリにまとめますか?

4

2 に答える 2

0

UNION(非選択またはサブ選択)クエリでやろうとしていることを達成できるとは思いません。

複数のクエリとUNIONまたはサブセレクトの観点からは、クエリの速度によって異なります。小規模なクエリが複数あると、応答のクエリ/フェッチでオーバーヘッドが繰り返される可能性があります。同時実行性と他のクエリとの相性という点では、通常、他のクエリと競合するという点では、より小さなクエリの方がデータベースに適している傾向があります。

于 2013-03-05T20:05:56.223 に答える
0

unionまたはを使用して 1 つのクエリを実行するとunion all、通信のオーバーヘッドが節約されるため、3 つの個別のクエリよりも高速になります。

では重複行が保持されるため、unionの代わりにも検討してください。union allunion all

于 2013-03-05T20:06:08.553 に答える