论坛首页 编程语言技术论坛

Rails sql延迟加载和自带缓存

浏览 9758 次
精华帖 (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了
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics