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

Таблица cache_default

Таблица cache_default является стандартной таблицей для хранения кешированных данных в Drupal. Она используется различными модулями и системой Drupal для временного хранения предварительно рассчитанных или часто запрашиваемых данных, что значительно ускоряет работу сайта.

Поля

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

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

Drupal использует систему кеширования для хранения результатов тяжелых вычислений, запросов к базе данных или рендеринга элементов. Когда модулю или теме необходимо сохранить данные в кеше, он использует функцию \Drupal::cache() с параметром default для получения объекта кеша, который работает с таблицей cache_default.

Каждая кеш-запись идентифицируется уникальным cid, который обычно строится на основе контекста данных (например, theme_registry:stark для реестра темы Stark). Данные сериализуются и сохраняются в поле data вместе с временем expiration и тегами.

При запросе данных система сначала проверяет наличие актуальной записи в кеше. Если запись существует и не expired, данные десериализуются и возвращаются без выполнения дорогостоящих операций. Это значительно снижает нагрузку на сервер и ускоряет время ответа сайта.

Система тегов позволяет инвалидировать группы связанных кеш-записей. Например, при обновлении ноды все кеш-записи с тегом node:1 могут быть автоматически удалены, обеспечивая актуальность данных.

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

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

SELECT cid, created, expire FROM cache_default WHERE cid LIKE 'my_module:%' AND (expire = 0 OR expire > UNIX_TIMESTAMP());

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

  • таблицу cache_render,
    которая хранит кешированные отрендеренные элементы
  • таблицу cache_config,
    которая предназначена для кеширования конфигурации
  • таблицу cache_discovery,
    которая хранит кеш обнаружения плагинов и расширений
  • таблицу cache_container,
    которая содержит кешированную информацию о dependency injection container
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить