ページングには大きく分けて3種類あります。
- メモリ方式
- DB×行番号方式
- DB×ソートキー方式
メモリ方式
全件データを取得してメモリに保管しておきページングの際にメモリから一部のデータを取り出す方式
用途
もしサーバーのメモリ容量に不安がなかったり表示するデータ件数が少なことがわかっている場合は選択の余地に入るでしょう。現実としてはあまり選ばれない方式です。
メリット
- 一括選択チェックボックスがあった場合に全ページのチェックボックスを一括で更新できる。
- いちいちDBに問い合わせないのでページング速度は速い。
- ページをまたいで移動できる。
- 別セッションでデータが削除されてもページズレは発生しない。
- ソートキーの付与は楽
デメリット
- 全件データを取得するのでメモリがサーバーのメモリが枯渇しやすくなる。
- SQLのレスポンスは悪くなる。
- 生成するHTMLの量が大きくなる。(特に画像付きで表示させる場合は尚更)
DB×行番号方式
ページングの度にDBに問い合わせて「行番号」をwhere句の条件にして検索をかける方式
用途
現実的に一番選ばれているページング方式になります。注意する点としてはページズレでしょう。別セッションのユーザーがデータを削除してしまった状態でページングしたら、本来ページング前に想定していたデータとは別のデータが一覧で表示されてしまいます。(業務での運用時に多少工夫が必要になるでしょう。)
メリット
- メモリの枯渇は起きない。
- ソートキーの付与は楽
- ページをいきなりNページに行くことが可能
デメリット
- チェックボックスのチェックは表示されている部分だけしか行えない。
- 別セッションでデータが削除されるとページずれが発生する。
- ページングした際の速度は遅い。
DB×ソートキー方式
ページングの度にDBに問い合わせて「ソートキー」をwhere句の条件にして検索をかける方式
用途
ある特定の条件下では選択の余地に入ります。前後のページにしか遷移ができないので業務によっては不便になってしまいます。
メリット
- メモリの枯渇は起きない。
- 別セッションでデータが削除されてもページズレは発生しない。
デメリット
- チェックボックスのチェックは表示されている部分だけしか行えない。
- ページングした際の速度は遅い。
- Nページに行けない。
- ソートキーの付与が行えない。
ソートキー
各データをユニークに特定できるキーです。
この記事へのコメントはありません。