メインコンテンツへスキップ

クエリで クエリキャッシュ が使用されているか確認するにはどうすればよいですか?

clickhouse client と ClickHouse Cloud service を使用する次の例を参照してください。 query_cache_test テーブルを作成します

clickhouse client を使用する

テーブルにいくつかのデータを挿入します:
トレースログを有効にします:
クエリキャッシュを使用するよう指定してクエリを実行します (クエリの末尾に SETTINGS use_query_cache=true を追加します) :
同じクエリをもう一度実行します:
それでは、QueryCache に関連する TRACE ログの違いを見てみましょう。 1回目の実行:
2回目の実行時:
1 回目の実行では、当然ながらエントリは見つからなかったため (No entry found for query SELECT...) 、ClickHouse がそのエントリを保存しました (Stored result of query SELECT...) 。 2 回目の実行では、すでに保存されているエントリが見つかったため (Entry found for query SELECT...) 、クエリキャッシュ が使われました。

SQLだけを使う

clickhouse client のトレースログを確認しなくても、SQLコマンドを実行するだけで、 関連する system テーブルを確認して、クエリキャッシュ が使用されているかどうかを検証できます:
直前の結果では、クエリ SELECT 1 SETTINGS use_query_cache=true; を初めて実行した際に QueryCacheMisses が 1 回発生し、2 回目の実行に対応する QueryCacheHits イベントも確認できます。 また、デフォルトの cache の最大エントリサイズは 1048576 バイト (= 1 MiB) で、結果はデフォルトでは 60 秒間しか cache に保存されない点にも注意してください (たとえば SETTINGSquery_cache_ttl=300 を指定すると、クエリキャッシュの結果を 5 分間保存できます) 。 ClickHouse クエリキャッシュ の詳細については、こちらを参照してください。
最終更新日 2026年7月1日