НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
94 of 182 menu

Таблица cache_dynamic_page_cache

Таблица cache_dynamic_page_cache является частью системы кеширования Drupal и хранит готовый HTML-контент страниц, который может быть быстро отдан пользователю без повторного выполнения дорогостоящих операций рендеринга.

Поля

Поле Тип данных Описание
cid varchar(255) Уникальный идентификатор кеш-записи. Обычно представляет собой хэш URL и других контекстных параметров.
data longblob Сериализованные данные кешированной страницы. Содержит готовый HTML и метаданные.
expire int Временная метка Unix, указывающая когда кеш-запись станет недействительной. Значение 0 означает, что запись никогда не истекает.
created int Временная метка Unix, указывающая когда была создана кеш-запись.
serialized smallint Флаг, указывающий сериализованы ли данные (1) или нет (0).
tags longtext Теги кеша, используемые для инвалидации групп записей. Разделены пробелами.
checksum varchar(255) Контрольная сумма тегов, используемая для быстрой проверки валидности кеш-записи.

Как это работает

Когда пользователь запрашивает страницу, Drupal сначала проверяет наличие валидной кеш-записи в таблице cache_dynamic_page_cache. Если запись найдена и не истекла, готовая HTML-страница отдается сразу, минуя сложные процессы рендеринга.

Ключ cid формируется на основе URL запроса, языковых настроек, ролей пользователя и других контекстных параметров, что обеспечивает различное кеширование для разных вариантов одной и той же страницы.

Система тегов (tags) позволяет эффективно инвалидировать группы кеш-записей. При изменении контента (нода, таксономия, конфигурация) Drupal автоматически удаляет все кеш-записи, помеченные соответствующими тегами.

Динамический кеш страниц особенно эффективен для анонимных пользователей, но также может работать и для аутентифицированных пользователей с учетом их ролей и разрешений.

Пример SQL-запроса

Посмотреть все активные кеш-записи для определенного пути:

SELECT cid, created, expire FROM cache_dynamic_page_cache WHERE cid LIKE '%node/123%' AND (expire = 0 OR expire > UNIX_TIMESTAMP());

Смотрите также

  • таблицу cache_default,
    которая содержит общий кеш данных Drupal
  • таблицу cache_render,
    которая хранит кешированные рендер-массивы
  • таблицу cache_page,
    которая содержит кеш полных страниц
  • таблицу cache_container,
    которая хранит кеш контейнера зависимостей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить