ページングされた結果を処理する際のアイテムの合計数を追跡する理想的な方法は何ですか?一連のページングされた結果の合計数を追跡する
これは最初は簡単な質問のようですが、実際に効率的に行う方法を考え始めると、ちょっと複雑になりました。
データベースからアイテム数を取得する必要があります。これは簡単です。私はいくつかの変数(例えば、$ _SESSION変数)にこの数を格納することができます。私はこの変数が設定されているかどうかを調べることができます。そうでない場合は、カウントを再度取得します。私が新しいカウントを取得する必要があるときを判断する最良の方法は何ですか?アイテムを追加/削除した場合、またはグリッドをリロードしたり再訪している場合は、新しいカウントを取得する必要があるようです。
したがって、この$ _SESSION変数をいつ削除するのかを決めるにはどうすればよいですか?私はそれをクリアし、更新/削除後に新しいカウントを得ることができます(あるいは、高価なデータベースのヒットを避けるために追加または削除することもできます)。(ここでは難しい部分があります)または結果の次のページに行く前に可変量の時間待つか、ページをリロードしますか?
私たちは数十万の結果を扱っている可能性があるので、データベースからそれらの数を得ることはかなり高価になる可能性があります(正しくは私の仮定は間違っていますか?)。ページングされた結果の総ページ数を処理するために合計カウントが必要なので...必要な場合に限り、このような状況を処理し、それを維持する最も効率的な方法は何ですか?
SELECT COUNT(id) FROM foo;
多くの結果では、丸められた数字を使用して、約22Kの結果やそのようなものを言いたいことがあります。 – dqhendricks