非常に大量のデータをページ分割する必要がある Rails 3 のプロジェクトに取り組んでいます。パフォーマンスを最大化するために大量のデータ (フォーラムの投稿など) をページ分割する適切な方法は何ですか? コレクションから 10 個のモデルだけを取得し、次のページに移動するときに再度取得すると、サーバーの負荷がかかりすぎますか? それとも、すべてをロードし、javascript を使用してそれらをページ付けしたほうがよいでしょうか?
1176 次
1 に答える
5
SQL ソリューションを探しているとします。
10 個のオブジェクトをプルすることは、サーバーの負荷の問題ではありません。問題は、それらをフィルタリングするために使用しているクエリです。それらをフィルタリングするために単純な主キーまたはその他の効率的な識別子を使用する場合、それは完全に問題ないはずです。単純にページを次々と (そして各ページに 10 個の項目を) リストしたいだけなら、問題はないと思います。必要な列をフェッチするようにしてください(つまり、選択した列で不要な列を避けます)。
will_paginate
ページネーションにはまたはを使用できますkaminari
。コレクションのサイズに関係なく、必要なレコード (各ページにプルするオブジェクトの数) のみをフェッチします。
Rails 3 用の Scope & Engine ベースの、クリーンでパワフル、カスタマイズ可能で洗練されたページネーター
Rails 3、Sinatra、Merb、DataMapper などのページネーション ライブラリ
于 2012-11-02T07:11:39.670 に答える