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

複数のデータベースに接続している場合 (たとえば、特定のモデルで Establish_connection を使用して)、ActiveRecord::Base.connection のみがクエリ キャッシュを有効にしているように見えます。ここに当てはまるかどうかはわかりませんが、確かに複数の DB に接続することのトリッキーな副作用です。

于 2011-07-18T20:04:04.213 に答える
0

本番環境でパッセンジャーと memcache を使用していますか?

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

于 2011-01-26T01:21:28.617 に答える