Почему кеширование запросов рельсов не работает? - PullRequest
3 голосов
/ 01 декабря 2010

В моей среде разработки у меня есть один запрос, который генерирует сотни одинаковых запросов:

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  

Ответы [ 2 ]

5 голосов
/ 19 июля 2011

Если вы подключаетесь к нескольким базам данных (скажем, с использованием instal_connection в некоторых моделях), то оказывается, что только ActiveRecord :: Base.connection получает возможность кэширования запросов.Не уверен, что это так, но, конечно, сложный побочный эффект подключения к нескольким БД.

0 голосов
/ 26 января 2011

Вы используете в производстве пассажиров и memcache?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...