サイトのすべての翻訳を返すクエリがあります。これは、ユーザーが希望する言語のすべての翻訳を取得し、次にサイトの既定の言語の残りを取得し、次に翻訳されていないその他の文字列を取得することによって行われます。データは頻繁に変更されないため、そのクエリで cachedwithin を使用しています。翻訳が変更された場合は、そのクエリのキャッシュをリセットしています。次に、ColdFusion の Query of Query を使用して、目的の個々のレコードを取得します。これにより、パフォーマンスが大幅に向上しました。
Query of Query クエリをさらにキャッシュして、パフォーマンスをさらに向上させることができるかどうか疑問に思っていました。ページの読み込みが 1/6 速くなるのでうまくいくように見えますが、この手法に落とし穴はありますか?
クエリのクエリは以下です。
<cfquery name="qryTranslation" dbtype="query">
SELECT
TranslationString
FROM
qryGetText
WHERE
TranslationHash = <cfqueryparam value="#StringHash#" cfsqltype="cf_sql_varchar">
AND DesiredLanguageID = <cfqueryparam value="#Arguments.LanguageID#" cfsqltype="cf_sql_bigint">
</cfquery>