3

在我的开发环境中,我有一个生成数百个相同查询的请求:

Person Load (24.4ms)  SELECT "persons".* FROM "persons" WHERE ("persons"."person_id" = 517) LIMIT 1  
. . .   
Person Load (64.4ms)  SELECT "persons".* FROM "persons" WHERE ("persons"."person_id" = 517) LIMIT 1

为什么是这样?我认为 Rails 应该在每个请求的基础上默认启用查询缓存?

config/development.rb:  
config.cache_classes = false  
config.perform_caching = true    
. . .    
# Show full error reports and disable caching  
config.consider_all_requests_local       = true  
config.action_view.debug_rjs             = true  
config.action_controller.perform_caching = true  
config.active_support.deprecation        = :log  
4

2 回答 2

5

如果您要连接到多个数据库(例如在某些模型中使用建立连接),似乎只有 ActiveRecord::Base.connection 启用了查询缓存。不确定这里是否是这种情况,但肯定是连接到多个数据库的一个棘手的副作用。

于 2011-07-18T20:04:04.213 回答
0

你在生产中使用乘客和内存缓存吗?

http://www.russbrooks.com/2010/10/20/rails-cache-memcache-on-passenger-with-smart-spawning

于 2011-01-26T01:21:28.617 回答