Это не только имя - это именно тот запрос, который вы выполняете.
<cfquery name="getPeople" cachedwithin=".5" ...>
select name from employee order by name
</cfquery>
Если вы вызовете этот же запрос где-либо еще в своем приложении, вы получите кэшированную версию, если она находится в течение половины дня после первого запроса. Но они попадут в базу данных для свежих данных:
<!--- Different name, same SQL: A new cached query --->
<cfquery name="getEmployees" cachedwithin=".5" ...>
select name from employee order by name
</cfquery>
<!--- Different SQL, same name: Redefining the cached query --->
<!--- Note: As pointed out in comments, it's not really overwriting the old query
of the same name, but making a new one in the cache. The first one by the
same name is still in the cache, waiting for eviction. --->
<cfquery name="getPeople" cachedwithin=".5" ...>
select name from employee order by name desc
</cfquery>
И да, она учитывает переменную. Если вы используете cfqueryparam
- что вам следует делать - ваша база данных будет кешировать план запроса , но даже при использовании cachedwithin
каждый запрос с измененным параметром будет рассматриваться как отличающийся от запроса Перспектива кеширования. Обратите внимание, что это означает, что если вы используете cachedwithin
в запросе, который выполняется многократно с разными параметрами, вы будете заполнять кэш запросов запросами с низкой частотой обращений в кэш.