Таблица views_cache
Таблица views_cache является частью системы кеширования модуля Views в Drupal. Она хранит результаты выполнения запросов представлений, что позволяет значительно ускорить загрузку страниц, особенно для сложных представлений с большим объемом данных или тяжелыми вычислениями.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
varchar(255)
| Первичный ключ. Уникальный идентификатор кеш-записи. Обычно генерируется на основе уникального ключа представления и его параметров. |
data |
longblob
| Сериализованные данные результата выполнения представления. Содержит массив с готовыми данными для отображения. |
expire |
int
|
Время истечения срока действия кеш-записи в формате Unix timestamp. Значение 0 означает, что запись никогда не истекает.
|
created |
int
| Время создания кеш-записи в формате Unix timestamp. |
serialized |
smallint
|
Флаг, указывающий на то, что данные в поле data сериализованы. 1 - данные сериализованы, 0 - нет.
|
tags |
longtext
| Список тегов кеша, связанных с этой записью. Используется для инвалидации групп кеш-записей. |
checksum |
varchar(255)
| Контрольная сумма тегов, используемая для быстрой проверки актуальности кеш-записи. |
Как это работает
Когда пользователь запрашивает страницу с представлением, система Views сначала проверяет наличие актуальной кеш-записи для этого конкретного запроса в таблице views_cache. Если запись найдена и ее срок действия не истек, данные извлекаются из кеша без выполнения ресурсоемкого SQL-запроса к базе данных.
Если кеш-запись отсутствует или устарела, выполняется полный процесс построения представления: выполняется SQL-запрос, результаты обрабатываются, тематизируются и затем сохраняются в views_cache для последующих запросов.
Кеш представлений может быть настроен на разных уровнях: для всего представления, для определенной панели отображения или даже для отдельных полей. Время жизни кеша настраивается в конфигурации каждого представления.
Система тегов позволяет точно инвалидировать кеш при изменении связанных данных. Например, при обновлении материала тег этого материала добавляется в список тегов для инвалидации, что приводит к удалению всех кеш-записей, связанных с этим материалом.
Пример SQL-запроса
Посмотреть все активные кеш-записи для представлений можно следующим запросом:
SELECT cid, created, expire
FROM views_cache
WHERE expire > UNIX_TIMESTAMP() OR expire = 0
ORDER BY created DESC;
Очистить весь кеш представлений можно с помощью команды:
TRUNCATE TABLE views_cache;
Смотрите также
-
таблицу
cache_default,
которая содержит общий кеш данных Drupal -
таблицу
views_view,
которая хранит конфигурации представлений -
таблицу
views_display,
которая содержит настройки отображений представлений -
таблицу
node,
которая хранит основные данные материалов