1

3000のユーザーレコードを持つusersテーブルがあります。ページネーションは正常に機能しますが、firebugのタイムラインを見ると、ダウンロードのコンテンツサイズは2.37MBで、ダウンロード時間は9.62秒であると記載されています。ページネーションは正常に機能しますが、最初の25レコードのみをダウンロードし、追加の利用可能なページへのリンクを提供することを望んでいました。私は黒点、思考-sphinxs、レールfind_in_batches、ストレートアップ:limit=>25などを試しました。

ページネーションがレコードセットを分割し、ページごとに25レコードを表示する場合、テーブル全体をダウンロードしているように見えるのはなぜですか?これは、ページ付けの背後にある理論や私が欠けているものを打ち負かしませんか?

@users = User.all(:conditions => ["client_id = ?", current_user.client_id]).paginate(:page => params[:page], :per_page => 25)

明らかに、ここでの目標は、10秒または12秒ではなく、1秒または2秒以内にページをロードすることです。これにアプローチするためのより良い方法はありますか?

4

1 に答える 1

1

ページネーションに使用するgemについては言及していませんが、それが通常の容疑者のいずれかである場合(またはRails 2.3に組み込まれている-覚えていません)、実際にLIMITは関連するレコードのみを照会するために a を使用する必要があります。ページの読み込み時間が遅いのは、おそらく他の原因によるものです。開発ログを見て、実際のクエリを確認してください。

于 2012-04-14T22:41:50.593 に答える