SQL 缓存

查询缓存是一种 Rails 功能,可以缓存每个查询返回的结果集。如果 Rails 再次遇到该请求的相同查询,它将使用缓存的结果集,而不是再次对数据库运行查询。

例如:

class ProductsController < ApplicationController

  def index
    # Run a find query
    @products = Product.all

    ...

    # Run the same query again
    @products = Product.all
  end

end

第二次对数据库运行相同的查询,它实际上不会命中数据库。第一次从查询返回结果时,它将存储在查询缓存中(在内存中),第二次从内存中提取。

但是,重要的是要注意查询缓存是在操作开始时创建的,并在该操作结束时销毁,因此仅在操作持续时间内持续存在。如果你希望以更持久的方式存储查询结果,则可以使用低级缓存。