Таблица 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,
которая хранит кеш контейнера зависимостей