データベースへの SQL クエリの数を減らすために、データベースからいくつかのデータをキャッシュしようとしています。現在、私がやっていることは、データベースから一連のレコードをロードすることです:
@records = Record.find(:all, :conditions => ["id < ?", 100])
次に、この配列を反復処理して、本当に必要なレコードを見つけます。
@needed_records = Array.new
@records.each do |record|
if record.is_needed
@needed_records.push(record)
end
end
そのため、必要なときはいつでも、実際にデータベースにアクセスする代わりに @records を渡すことができます。
私の質問は、この方法で何か欠点はありますか? 同等のことを行うより良い方法はありますか?