Таблица cache_update
Таблица cache_update является одной из стандартных кэш-таблиц Drupal и используется системой обновлений (Update Manager) для временного хранения данных, полученных с серверов обновлений. Это позволяет избежать многократных запросов к внешним серверам при проверке доступности обновлений и значительно ускоряет работу административного интерфейса.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
varchar(255) |
Уникальный идентификатор кэш-записи. Обычно содержит хеш или уникальное имя, сгенерированное на основе параметров запроса к серверу обновлений. |
data |
longblob |
Сериализованные данные, полученные от сервера обновлений. Содержат информацию о доступных релизах, версиях, ссылках для скачивания и рекомендациях по безопасности. |
expire |
int |
Время истечения срока действия кэш-записи в формате Unix timestamp. По умолчанию данные об обновлениях кэшируются на 6 часов.
|
created |
int |
Время создания кэш-записи в формате Unix timestamp. |
serialized |
smallint |
Флаг, указывающий на то, что данные в поле data сериализованы. Принимает значение 1 (сериализованы) или 0 (не сериализованы).
|
tags |
longtext |
Теги кэша, используемые для инвалидации групп кэш-записей. Для данной таблицы обычно не используется. |
checksum |
varchar(255) |
Контрольная сумма данных, используемая для проверки целостности кэш-записи. |
Как это работает
При проверке обновлений через административную панель Drupal (Отчеты > Доступные обновления) система сначала проверяет наличие актуальных данных в таблице cache_update. Если запись существует и ее срок действия не истек (поле expire), данные берутся из кэша без обращения к внешним серверам.
Если кэш-запись отсутствует или устарела, Drupal отправляет запрос на сервер обновлений Drupal.org (или другой настроенный сервер), передавая информацию об установленных модулях, темах и их версиях. Полученный ответ сериализуется, сохраняется в поле data и кэшируется на определённое время.
Кэширование данных об обновлениях критически важно для производительности сайта, так как запросы к внешним серверам могут занимать значительное время, особенно при большом количестве установленных модулей.
Очистка устаревших записей из таблицы выполняется стандартным механизмом крон-заданий Drupal при выполнении drupal_cron_run().
Пример SQL-запроса
Посмотреть содержимое кэша обновлений можно следующим запросом:
SELECT cid, FROM_UNIXTIME(created) as created, FROM_UNIXTIME(expire) as expire
FROM cache_update
WHERE expire > UNIX_TIMESTAMP()
ORDER BY created DESC;
Смотрите также
-
таблицу
cache_bootstrap,
которая хранит кэш начальной загрузки системы -
таблицу
cache_container,
которая хранит кэш контейнера зависимостей -
таблицу
cache_config,
которая хранит кэш конфигурации -
таблицу
cache_data,
которая хранит общий кэш данных