Twitter、Facebook などのソーシャル メディア サイトから多くのデータを取得する Ruby on Rails アプリケーションがあります。
レコードをページとして表示するインデックス ページがあります。ページングにはカミナリを使用しています。
私の問題はビッグデータだと思います。何百万ものレコードがあり、それらをカミナリのインデックス ページに表示したいとします。ブラウザでシステムを実行しようとすると、Heroku から H12 エラー (リクエストのタイムアウト) が返されます。
アプリのパフォーマンスを改善するにはどうすればよいですか? インデックス ページに表示されるレコードのみを取得するという考えがあります。同様に、Kaminari の 2 ページ目のリンクをクリックすると、データベースから 2 ページ目のレコードのみが取得されます。アイデアは基本的にそれですが、どこから始めてどのように実装すればよいかわかりません。
ここに私のコントローラーからのコードの例があります:
@ca_responses = @ca_responses_for_adaptors.where(:ca_request_id => @conditions)
.order(sort_column + " " + sort_direction)
.page(params[:page]).per(5)
@ca_responses: 私の記録
@ca_responses_for_adaptor: アダプターに基づくレコード。管理者と考えると、すべてのレコードが返されます。
@condition: 指定されたアダプタ レコードを取得します。たとえば、Twitter 関連のレコードのみを取得するなど。