0

巨大なレコードのページネーションについては、ヘルプやアドバイスが必要です。

私は400,000のレコードを持っていますが、dbに行くたびにページネーションを行い、制限セットに基づいてセットレコードを取得しています。

60千レコードのセッション値が保存されなくなった後、すべてのレコードをセッションに追加しようとしました(これは適切なオプションではありません)。

巨大なデータレコードのページネーションに役立つ他の方法を知る必要があります。

これにsphinx/memcacheを使用できますか?

4

3 に答える 3

2

それで、問題は何ですか?データベースクエリは、データベースにヒットするはずです。パフォーマンスの問題はありますか?適切なインデックスで修正できます。結果を 10 ~ 20 に制限している場合でも、400k は実際には巨大なデータセットではありません。

EXPLAINSQLサーバーが何をしているかを確認するのに役立ちます。

ページネーションによってページが更新されている場合は、AJAX を実装してより見栄えのする ux を作成することをお勧めします。

sphinx または memcached の両方を使用できます。Memcached は、DB にアクセスする前に最初にキャッシュを検索できるため、実装が簡単になる可能性があります。いくつかのクエリ/データベースのチューニングは大いに役立つと思います。

于 2012-06-05T18:29:50.810 に答える
1

一度に 100 レコードなど、AJAX を使用してレコードを取得できます。

于 2012-06-05T18:21:23.477 に答える
0

memcache を使用してメモリ内で実行できますが、これは機能しますが、大量のメモリを消費する可能性があります。

時間または主キーの auto_increment フィールドを使用してインクリメントされるキーがデータ セットにある場合、次のようなクエリを実行できます。

SELECT fieldlists FROM tablename WHERE key > $lastusedkey limit $limit

これは、ページングを行うアプリケーションで発生する可能性のある制限のボトルネックを回避し、データベース全体をメモリに配置する必要はありません。

于 2012-06-05T18:23:29.067 に答える