回答:
ページネーションを行う理由はいくつかありますが、サーバーの負荷を減らすことはたった1つのことです。ただし、Stephen Orrは有効なポイントを挙げています。データ量を最初に見つける必要があります。そのクエリが迅速であり、サーバーを過度にロードしないことを確認する必要があります。
その他の理由は次のとおりです。
どちらの場合も、ユーザーに表示させないデータや、一部の処理でデータを取得できるすべてのデータを待たせたくありません。
実装によって異なります。
ページのレンダリングを高速化しますが、必ずしもサーバーの負荷が軽減されるわけではありません。ほとんどの単純なページネーションアルゴリズムは、最初にクエリを実行してページ数を決定し、次に再度クエリして「ページングされた」結果セットを取得する必要があります。
ページネーションから得られる最大の価値は、次の方法でアプリケーションの速度を向上させることです。
1-クライアントとサーバーの間で送信されるデータを制限します。ユーザーが10人を探している場合、1000000人の顧客を読む意味はありません。
2-ユーザーのビューに収まる行のみを取得することにより、クエリのパフォーマンスを大幅に高速化します。ユーザーが最初の10人の顧客を見る場合、1000000人の顧客を読む意味はありません。
3-ページネーションは、より新しいデータを提供することで役立ちます。アプリケーションに多数のデータ行が表示され、表示されたテーブルのデータ行をアプリケーションドメインで大量に更新する必要がある場合、ページのリストの20ページに移動するまでに、一部の行のデータがかわった。ホテルの株価または利用可能な部屋を読み取るアプリケーションを考えてください。古いデータを取得してクライアントに配置することは役に立ちません。
ページネーションは、複数のユーザーがデータベースにアクセスしているときに、フィルタリングと特定のシナリオからのエンドユーザーのニーズ(このニーズに応える適切な設計につながることが期待される)の理解と組み合わせて、アプリケーションを大幅に強化する1つの戦略です同時に。
ページネーションは、必ずしもプログラムにとって簡単ではありません。場合によっては簡単ですが、フルテーブルスキャンを実行せずにSQLクエリが実行されるように記述するのは非常に複雑な場合があります。もちろん、これはインデックス、フィルター条件、Whereステートメントに依存します。
私の考えでは、ページネーションはすべての時期尚早な最適化の母です。ページネーションなしでサイトを書くことは絶対に大丈夫です。
リリース後に、1回の呼び出しで大量のデータを読み込んでいる、またはユーザーが不要なデータの読み込みで忙しいために必要な情報を待たなければならない場合は、先に進んでAjaxソリューションを作成しますユーザーが下にスクロールするときにのみページをロードします(Twitter、Tumblr、Google画像検索を参照)。
編集:上記の2番目の段落は、一般的な応答は「ただし、ある時点でページネーションを行うことがわかっている場合は、スローするものを開発する時間を無駄にするのではなく、早めに行うこともある」という前提で書かれています離れて。」
すべての時期尚早な最適化の母であるだけでなく、ページネーションはUXの悪夢であり、完全なページの上に余計な開発を必要としないより良いソリューションがあると思います。
ダウン投票の数にもかかわらず、私はこの最高の執筆ではなかったかもしれないが、私は感情を支持しているので、この答えをここに残しています。