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

Таблица cache_views

Таблица cache_views является частью системы кеширования Drupal и отвечает за хранение результатов работы модуля Views. Когда представление выполняется в первый раз, его результат (обычно HTML-вывод или данные) сохраняется в этой таблице. При последующих запросах система сначала проверяет наличие актуальной кешированной версии, что значительно снижает нагрузку на базу данных и ускоряет генерацию страниц.

Поля

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

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

Когда пользователь запрашивает страницу, содержащую представление, модуль Views генерирует уникальный cid на основе параметров этого представления. Система проверяет наличие действующей записи с таким cid в таблице cache_views.

Если запись найдена и ее срок действия (expire) не истек, данные из поля data десериализуются и используются без выполнения тяжелых SQL-запросов к базе данных. Это значительно ускоряет время отклика.

Если подходящей записи в кеше нет, представление выполняется обычным образом: строится и выполняется SQL-запрос, результат обрабатывается, форматируется и затем сохраняется в cache_views для будущих запросов.

Система тегов (tags) обеспечивает точную инвалидацию кеша. Например, при сохранении термина таксономии будет инвалидирован кеш с тегом taxonomy_term:[tid]. Это означает, что все представления, которые выводят этот термин или зависят от него, будут автоматически перестроены при следующем запросе.

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

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

SELECT cid, created, expire, LENGTH(data) as data_size FROM cache_views WHERE cid LIKE 'view_name:%' ORDER BY created DESC;

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

  • таблицу cache_bootstrap,
    которая хранит критически важный кеш для загрузки Drupal
  • таблицу cache_data,
    которая является общей таблицей кеширования для произвольных данных
  • таблицу views_view,
    которая хранит конфигурации представлений
  • таблицу views_display,
    которая хранит настройки отображений представлений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить