私はいくつかのブログから読んだ
タイムスタンプキャッシュは、各テーブルの最終更新タイムスタンプを追跡します(このタイムスタンプは、テーブルが変更されるたびに更新されます)。クエリキャッシュがオンの場合、タイムスタンプキャッシュは1つだけであり、すべてのクエリキャッシュインスタンスで使用されます。クエリキャッシュでクエリがチェックされるたびに、タイムスタンプキャッシュでクエリ内のすべてのテーブルがチェックされます。テーブルの最後の更新のタイムスタンプがクエリ結果がキャッシュされた時間よりも大きい場合、エントリは削除され、ルックアップは失敗します。
メソッドを使用してエンティティをロードget()
し、を呼び出して保存したとしますsaveOrUpdate()
(または)を呼び出してエンティティを削除しましたdelete()
。
これらすべての場合において、タイムスタンプキャッシュは変更されたテーブルを追跡し、クエリキャッシュにそれらのテーブルのキャッシュされたクエリ結果を無効にしますか?
ありがとうございました!