クエリで必要な製品を指定し、他の製品を使用する意図がまったくない場合にのみそれらを返す方がはるかに優れています。
これは、多くの方法を使用して行うことができます。in
単純なものは、次のようなステートメントで ID フィールドを使用することです。
select col1, col2 from products where id in(1,4,12,5)
ほとんど違いがないように思えるかもしれませんが、procuts テーブルに 10 万行あるとしたらどうでしょうか。
次のようなものを使用できるようにするアイテムが特集されていることを示すために、テーブルにフラグを設定することもできます。
select col1, col2 from products where featured='Y'
または、注目のアイテム (ID だけでも) のみを含むテーブルを作成し、次のようにメイン リストに結合することもできます。
select
a.col1,
a.col2
from
products a
join featured b
on a.id=b.id
テーブル全体を選択したい場合はlimit
、テーブルから特定の数の行を選択し、次のセットを取得するために再利用できる単純な句を使用することもできます。
select col1, col2 from products limit 10;
// Will pick the first 10 rows of data.
select col1, col2 from procuts limit 30,10;
// Will pick rows 31-40 (skipping first 30, then returning next 10)
短いバージョンですが、どのように行うにせよ、データのテーブル全体を引き戻して PHP 内で選択することは悪いことであり、絶対に避けるべきです。これにより、データベースの動作が非常に難しくなり、データベースと PHP の間でより多くのネットワークが使用され (同じマシン上にある場合でも、2 つの間でより多くのデータが転送されます)、デフォルトで PHP がより多くのデータを使用するようになります。情報を処理するためのリソース。