巨大なレコードのページネーションについては、ヘルプやアドバイスが必要です。
私は400,000のレコードを持っていますが、dbに行くたびにページネーションを行い、制限セットに基づいてセットレコードを取得しています。
60千レコードのセッション値が保存されなくなった後、すべてのレコードをセッションに追加しようとしました(これは適切なオプションではありません)。
巨大なデータレコードのページネーションに役立つ他の方法を知る必要があります。
これにsphinx/memcacheを使用できますか?
それで、問題は何ですか?データベースクエリは、データベースにヒットするはずです。パフォーマンスの問題はありますか?適切なインデックスで修正できます。結果を 10 ~ 20 に制限している場合でも、400k は実際には巨大なデータセットではありません。
EXPLAINSQLサーバーが何をしているかを確認するのに役立ちます。
ページネーションによってページが更新されている場合は、AJAX を実装してより見栄えのする ux を作成することをお勧めします。
sphinx または memcached の両方を使用できます。Memcached は、DB にアクセスする前に最初にキャッシュを検索できるため、実装が簡単になる可能性があります。いくつかのクエリ/データベースのチューニングは大いに役立つと思います。
一度に 100 レコードなど、AJAX を使用してレコードを取得できます。
memcache を使用してメモリ内で実行できますが、これは機能しますが、大量のメモリを消費する可能性があります。
時間または主キーの auto_increment フィールドを使用してインクリメントされるキーがデータ セットにある場合、次のようなクエリを実行できます。
SELECT fieldlists FROM tablename WHERE key > $lastusedkey limit $limit
これは、ページングを行うアプリケーションで発生する可能性のある制限のボトルネックを回避し、データベース全体をメモリに配置する必要はありません。