ブックマーク / qiita.com/madilloar (2)

  • で、オフセット法に比べてシーク法のページネーションはどれだけ早いの?RDB毎に。 - Qiita

    また、上記を調べる中で、各種リレーショナルデータベースでテーブル作成やインデックスの作成、大量件数のランダムなデータ生成、統計情報の取得や実行計画の取得までの一連の作業を後で見返すよう用に書いています。 途中黒三角▼の行がありますが、ここはsqlなど縦に長いので折りたたんでいます。参照する場合は、その行をクリックしてください。 何をやるか? 他えば、受注管理システムの受注明細画面のバックエンドで実行するページネーション用のsqlを作っていることをイメージしてください。 ざっくりした要件では、最近受注した明細を見たいというものです。 最終的に決まった外部設計は、受注日付の降順、製品IDの昇順、受注明細IDの昇順でソートした受注明細を10件毎にページネーションするというものです。 ページネーションを試すテーブルの作成(受注明細テーブルの作成)。 これに100万件のランダムなテストデータを登録。

    で、オフセット法に比べてシーク法のページネーションはどれだけ早いの?RDB毎に。 - Qiita
    tetsu040e
    tetsu040e 2022/05/10
  • offsetでページネーションは遅い。これからはシーク法だ! - Qiita

    動機 ページネーションは​​ページングと呼ぶこともありますが、 ページネーションでググるとoffsetを使った例(便宜上オフセット法と呼びます)がよくでてきます。 でも、これ遅いです。どれだけ遅いかはデータベース毎に調べたたのでこちらを参照(で、オフセット法に比べてシーク法のページネーションはどれだけ早いの?RDB毎に。)。 で、これを解決する方法にシーク法(後述)がありまして、かなり高速なのでお薦めです。 が、シーク法のsqlはちょっと複雑なので(特にorder by句に3項目以上の項目があり、 且つascやdescが組み合わさった場合)、後で見返すために覚書として。 シーク法の参考URL Faster SQL Pagination with Keysets, Continued Posted on November 18, 2013 USE THE INDEX,LUKE! 次ページの取

    offsetでページネーションは遅い。これからはシーク法だ! - Qiita
    tetsu040e
    tetsu040e 2022/05/10
  • 1