锁定老帖子 主题:Rails sql延迟加载和自带缓存
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-04
最后修改:2011-06-04
query cache
就是一个简单的hash key就是sql语句,代码: def cache_sql(sql) result = if @query_cache.has_key?(sql) ActiveSupport::Notifications.instrument("sql.active_record", :sql => sql, :name => "CACHE", :connection_id => self.object_id) @query_cache[sql] else @query_cache[sql] = yield end if Array === result result.collect { |row| row.dup } else result.duplicable? ? result.dup : result end rescue TypeError result end 所以多个limit就重新执行了一次 那个cache就是rails的cache mysql的cache不会在rails的log里面打出来吧, 如果是mysql执行了cache,rails的日志应该就是正常的数据库查询,只是查询时间比较短 而且不应该是cache开头 那个class为什么会是array 我记得好像有个inspect方法是会self.to_a 所以就成array了 |
|
返回顶楼 | |