所以我有这个昂贵的数据库查询,其结果不会经常变化。
问题是,对于这个查询,我唯一真正关心的是50%的原始数据串。
是否完全反对“RoR way”TM使用页面缓存来缓存昂贵且经常使用的查询的结果?
在数据库服务器本身上缓存结果集有点过分,因为我真的只关心从查询结果中收集的一些数据。 并且页面缓存是浪费的,因为几个不同的页面都使用了这些数据,并且只有在它周围的视图发生变化时才会缓存相同的内容。
答案 0 :(得分:4)
听起来像是你想要的铁路缓存
Rails.cache.fetch('cache_key') do
# calculations here
end
执行计算并将块的返回值填入缓存中或从缓存中读取值。
您可以显式地过期(Rails.cache.delete)或设置到期时间或使用分代缓存键。
您可以使用各种缓存存储,但其中一种常见的缓存存储是memcsched。有关如何配置缓存存储here
的详细信息