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

第二次對資料庫執行相同的查詢,它實際上不會命中資料庫。第一次從查詢返回結果時,它將儲存在查詢快取中(在記憶體中),第二次從記憶體中提取。

但是,重要的是要注意查詢快取是在操作開始時建立的,並在該操作結束時銷燬,因此僅在操作持續時間內持續存在。如果你希望以更持久的方式儲存查詢結果,則可以使用低階快取。