在开发环境中,将活动记录与SQL_NO_CACHE一起用于所有查询的简单方法是什么?
我想针对最坏情况加载时间优化语句。希望以这种方式做到这一点是有意义的,但是我在第一页命中时会得到非常慢的查询,下次所有查询都非常快,因为服务器应该缓存它们。
我正在使用带有rails 3.2.3的mysql2 gem 0.3.11。
答案 0 :(得分:2)
由于我不想编辑数百个查询,我在应用程序控制器中放置了一个前置过滤器,如下所示:
def disable_sql_query_cache_in_development
if Rails.env == "development"
Rails.logger.warn Utils.yellow "ApplicationController.disable_sql_query_cache_in_development", "Query cache will be reset for worst case performance tuning"
#ActiveRecord::Base.connection.execute("SET SESSION query_cache_type = OFF")
ActiveRecord::Base.connection.execute("RESET QUERY CACHE")
end
end
答案 1 :(得分:1)
使用常规导轨发现你可以填写:
2.3.5:
User.find(:all, :select => "SQL_NO_CACHE *", :conditions=>"id = 1234")
3 +
User.where(:id => 10).select("SQL_NO_CACHE *")