Railsアプリケーションを6倍速くしてから更に5倍速くした
500msから更に5倍速くした
やった事
Rails.cache
Rails.cache使ってモデルメソッドの結果をキャッシュに入れました。
def hoge cache_variable = Rails.cache.read("#{column_name}_cache") if cache_variable.nil? #重い処理してarrayに入れる Rails.cache.write("#{column_name}_cache", array.to_a, expires_in: 24.hour) array else cache_variable end end
こうしたらアクセスしてもsql文が発行されなくなった。
最終的に
Completed 200 OK in 3271ms (Views: 53.9ms | ActiveRecord: 2300.6ms) ↓ Completed 200 OK in 112ms (Views: 15.4ms | ActiveRecord: 4.9ms)
29倍速くなりました。
キャッシュ便利すぎて怖いので何かデメリットをご存知の方がいれば教えて下さい。