答えは、一致すると予想される行の数と、行に格納されているデータのサイズによって異なります。
ページネーションへの従来のアプローチは、SQLLIMIT
句を使用して全体的な結果セットのサブセットを返すことです。(「ページ」の完全な数を表示するために) レコードの完全な数を実際に知る必要がある場合は、SELECT COUNT(primary_key_field) FROM table WHERE [search condition]
その情報を取得するために も作成する必要があります。
COUNT クエリは非常に高速に実行できるはずであり、LIMIT クエリは、並べ替えに使用しているフィールドにインデックスがある限り、クエリのパフォーマンスの応答性を維持するため、通常、これにより最良の結果が得られます (常に必要なため)。注文を保証するためORDER BY
に一緒に)。LIMIT
これは、アプリケーションのメモリに保持する必要があるレコードが少なくなることも意味します。
単一のクエリアプローチが優れている可能性があるユースケースがいくつかあると思います (つまり、多数の潜在的な行がなく、行のデータサイズが小さい)。完全な結果セットを取得するためのメモリ使用量。
実際には、アプリでいくつかのシナリオをテストし、何が最適かを確認する必要があります。