私は集計を表示したいコレクションを持っています。アイデアは必要な合計ごとにキャッシュを使用することでした。しかし私はまた、データセットにドリルダウンする必要があります。とにかくコレクションをロードする必要があります。だから私はまだキャッシュを使用するか、単に計算を使用する必要がありますか?Railsカウンタキャッシュと計算
4
A
答えて
3
答えはコレクションのサイズによって異なります。コレクションが非常に大きい場合(1000'sまたはitems)、キャッシングはおそらく良い考えです。そのほんの一握りで、関連する行をすばやく見つけるための索引がテーブルにある場合は、特にキャッシュにドリルする必要がある場合は、おそらくキャッシュは必要ありません。
これらのすべての種類の質問と同様に、正解は通常「それに依存する」です。あなたの要件やデータなどに大きく左右されます。
3
Stephen ODonnellは「コレクションのサイズに依存します」と述べています。ただし、この計算をページで行う場合は、回を考慮する必要があります。たとえば、Blogアプリケーションを実行していて、投稿/インデックスページに10個のブログ投稿が表示されていて、それぞれ下部に「155コメント」がある場合は、カウンタキャッシュを使用して回避できるデータベースコールがたくさんあります。
アクティブなレコードの検索だけで試してみることをおすすめしますが、 "include"オプションを追加してください。 Post#123に50のコメントがあるとします。
p = Post.find_by_id(123)
p.comments.each do {|c| puts c } #Do something meaningful instead...
51個のデータベース呼び出し、1個のポスト、1個の各コメントが生成されます。代わりに、あなたが行うことができます:あなたはポストを検索したときに自動的にコメントを照会します
Post.find_by_id(123, :include => [:comments])
は今、1
関連する問題
- 1. Ruby/Rails計算
- 2. Rails 3アクティブレコード計算:同時に合計と平均を計算する
- 3. Railsアプリケーションでの計算ロジック
- 4. Railsのメーラーのテンプレート計算
- 5. Rails:1日ごとに統計とグループを計算する
- 6. 複数のカウンタキャッシュ列とaasm
- 7. Rails 3、モデルメソッド/計算された属性
- 8. 計算とMYSQL
- 9. 多態性の関係とカウンタキャッシュ
- 10. Postgres - Railsで文字列として返される計算
- 11. クライアントデータセットで計算フィールドと内部計算フィールドを再計算する方法
- 12. BigDecimalスケールと計算
- 13. 面積計算と
- 14. 計算税と総
- 15. 算術計算
- 16. 計算合計
- 17. ACCESSサブクエリと集計の計算
- 18. シンプルな送料と計算の計算を行うJavaScriptで
- 19. アクティブレコード合計計算
- 20. 集計の計算
- 21. Gearman - 計算統計
- 22. ノックアウト計算合計
- 23. 行列を転置する計算量と逆算する計算量
- 24. ヒュージグラムによる計算の計算
- 25. ストリーミングデータのヒストグラム計算 - オンラインヒストグラム計算
- 26. 目的の計算で計算する
- 27. JavaScript計算が計算されない
- 28. ICMPヘッダとIPヘッダチェックサム計算
- 29. ヤフーファイナンスデータクエリの計算と効率
- 30. NSDate単位と計算
に51個のクエリを崩壊することはまあ各コレクションは、より多くの可能性が高い50、1000の下である可能性が高いです-200行。私は一番簡単な方法を試してみようと思います! – Cameron