缓存查询

缓存查询是将结果存储在服务器内存中的查询。首次运行查询时会存储结果。从那时起,每当再次请求该查询时,ColdFusion 将从内存中检索结果。

你可以使用 cachedAfter 属性缓存查询。如果查询是在提供的日期之后最后一次运行,则使用缓存数据。否则,将重新运行查询。

<cfquery datasource="Entertainment" cachedAfter="July 20, 2016">
    select *
    from Movies
</cfquery>

为了使用缓存并避免对数据库的多次调用,当前查询必须使用与所使用的缓存查询相同的 SQL 语句,数据源,查询名称,用户名和密码。这包括查询中的空格。

因此,以下查询会创建不同的缓存,即使修剪后的字符相同且查询结果相同:

<cfquery datasource="Entertainment" cachedAfter="July 20, 2016">
    select *
    from Movies
    <cfif false>
    where 1 = 1
    </cfif>
    <cfif true>
    where 1 = 1
    </cfif>
</cfquery>

<cfquery datasource="Entertainment" cachedAfter="July 20, 2016">
    select * 
    from Movies
    <cfif true>
    where 1 = 1
    </cfif>
    <cfif false>
    where 1 = 1
    </cfif>
</cfquery>