Перейти к основному содержанию

Как проверить, используется ли кэш запросов в моём запросе?

См. пример использования клиента ClickHouse и сервиса ClickHouse Cloud. создайте таблицу query_cache_test

Использование клиента ClickHouse

заполните таблицу данными:
включите трассировочные логи:
выполните запрос, указав, что нужно использовать кэш запросов (добавив SETTINGS use_query_cache=true к запросу):
снова выполните тот же запрос:
Теперь обратите внимание на различия в TRACE-журналах, связанных с QueryCache, в следующих случаях: 1-й запуск:
при втором выполнении:
При 1-м выполнении запись, как и ожидалось, не была найдена (No entry found for query SELECT...), поэтому ClickHouse сохранил (Stored result of query SELECT...) её для нас. При 2-м выполнении запрос использовал кэш запросов, так как нашёл уже сохранённую запись (Entry found for query SELECT...).

Использование только SQL

Можно также проверить, используется ли кэш запросов, просто выполняя команды SQL и не просматривая трассировочные логи клиента ClickHouse: для этого достаточно обратиться к соответствующим таблицам system:
В последних результатах мы видим 1 QueryCacheMisses при первом выполнении запроса SELECT 1 SETTINGS use_query_cache=true; и событие QueryCacheHits, связанное со вторым выполнением этого запроса. Также имейте в виду, что максимальный размер одной записи кэша по умолчанию составляет 1048576 байт (= 1 MiB), а результаты по умолчанию хранятся в кэше только 60 секунд (например, вы можете использовать query_cache_ttl=300 в SETTINGS, чтобы результат запроса хранился в кэше 5 минут). Более подробную информацию о кэше запросов ClickHouse можно найти здесь
Последнее изменение 1 июля 2026 г.