こうすることで、何ページに分かれているかが分かります。
例えばリスト結果が126行の場合、1ページが20行であれば7ページに分割されますよね。
コードマネージャーは次のようになります:
合計行数を計算します: select count(*) from tablename where …..
クエリ リスト select * from tablename where … 制限…
このメソッドには最適化メソッドがないため、最初のリストが再度クエリされることがわかります。
まず、データの更新頻度がそれほど高くないと仮定して、ページ 1 とページ 2 をクリックしてみましょう。 。 。実際、最初の SQL 文は同じ結果になります。これは、後続の作業が繰り返されることを意味しますか?では、1 ページ目の結果の数を取得したら、その結果を一度に渡すだけでよいでしょうか。
たとえば、ページネーション リンクの 2 ページ目は次のようになります list.php?page=2&count=126
プログラムに判定を追加します:
リーリー
この最適化後、最初のページの合計数のみを計算し、それ以降のページは使用しない場合、効率は向上しますか?
別の状況があります。つまり、ファジー クエリの場合、ほとんどのクエリ結果が 20 未満であると推定されるアプリケーションがあります。つまり、結果が 1 ページしかないため、これを行う必要はありません。総数を計算する必要があり、ファジー クエリの効率も比較的低くなります。そこで突然、当初の考え方から飛び出して、なぜ最初に合計行数を計算してからリストを取得する必要があるのかを考えました。
実際、リストの結果の数 = 20 の場合、最初にリストをクエリできます。20 未満の場合は、実際には 1 ページしか存在しないため、合計行数をクエリします。行の合計数は、見つかったリスト結果の数と同じです。
疑似コードは次のとおりです:
リーリー