---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - en/concepts/caching
  - ru/concepts/caching
  - href: ru/concepts/caching.md
    type: text/markdown
    title: Markdown version
csp:
  - script-src:
      - https://mc.yandex.ru
    img-src:
      - https://mc.yandex.ru
    connect-src:
      - https://mc.yandex.ru
      - wss://mc.yandex.ru
    child-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-src:
      - 'blob:'
      - https://mc.yandex.ru
    frame-ancestors:
      - 'blob:'
      - https://mc.yandex.ru
canonical: ru/concepts/caching.html
vcsPath: ru/concepts/caching.md
---
# Кеширование

_Кеш_ хранит в себе часто запрашиваемые данные и обеспечивает к ним быстрый доступ.

{% note info %}

Кеш DataLens не сохраняет исходные данные из источника, а только временно хранит результаты отдельных запросов.

{% endnote %}

DataLens кеширует результаты запроса пользователя, поэтому при изменении данных в источнике дашборды и чарты могут обновляться не сразу. Если на дашборде находятся виджеты, построенные на разных подключениях, частота обновления данных для них может различаться в зависимости от настроек времени жизни кеша каждого подключения. Максимальный объем данных в кеше — 512 МБ для каждого запроса.

Время жизни кеша для подключения по умолчанию — 300 секунд (5 минут). Пользователь может изменить время жизни кеша в настройках подключения до 86 400 секунд (1 сутки). Настройка доступна для подключений, перечисленных в блоке `Базы данных` раздела [Подключение к источнику данных в DataLens On-premises](./connection/index.md). По ссылкам на странице вы можете посмотреть, как изменить настройку для каждого конкретного подключения.

## Особенности использования кеша в DataLens {#using}

DataLens не выполняет запросы к данным в кеше. Из кеша возвращается только целиком результат запроса, который не используется при агрегации и в подзапросах. Результаты запросов, которые отличаются друг от друга, кешируются отдельно.

Если в запросе используется функция времени [`NOW()`](../function-ref/NOW.md), то полученное из кеша значение этой функции может отличаться от реального на величину, не превышающую время жизни кеша.

При использовании [RLS](../security/row-level-security.md) к запросу добавляется дополнительная фильтрация. Для каждого правила в RLS будет сгенерирован свой запрос, результаты которого кешируются отдельно. Одинаковые запросы для пользователей с одинаковыми правилами RLS используют один кеш.

DataLens кеширует результаты запросов, которые сформированы с помощью [селекторов](../dashboard/selector.md). Для уменьшения обращений к БД используйте в селекторах значения по умолчанию.



## Условия сброса кеша {#reset-cache}

Кеш будет сброшен в следующих случаях:

* Истечение времени жизни кеша.
* Изменения любых параметров подключения, кроме названия.
* Обновление полей в датасете.
* Изменение SQL-запроса в источнике датасета.

## Вопросы и ответы {#qa}

{% cut "Можно ли в инспекторе чартов отследить, что запрос пошел в кеш?" %}

На данный момент такой возможности нет. Но если в запросе использовать функции определения времени (например, `NOW()`), можно увидеть разницу между текущим реальным временем и текущим временем, которое сохранено в кеше. По разнице можно понять, насколько актуальные данные в кеше.

{% endcut %}

{% cut "Есть ли ограничение объема кеша для запроса или пользователя?" %}

Для каждого запроса объем данных в кеше ограничен только объемом хранилища кеша — 512 МБ.
Ограничения объема кеша на пользователя или экземпляр DataLens нет.

{% endcut %}

{% cut "Работает ли кеш в настройках выбора цвета в чарте?" %}

Если в секцию **Цвета** добавить поле, которое уже участвует в построении чарта, то будет использован кеш.
Если в секцию **Цвета** добавить новое поле, будет выполнен новый запрос к данным в источнике.

{% endcut %}

<!-- source: ru/_includes/clickhouse-disclaimer.md -->
_ClickHouse® является зарегистрированным товарным знаком [ClickHouse, Inc](https://clickhouse.com)._
<!-- endsource: ru/_includes/clickhouse-disclaimer.md -->