Таблица cache_config
Таблица cache_config является одной из ключевых таблиц кеширования в Drupal. Её основное назначение - хранить предварительно загруженные и подготовленные данные конфигурации, что значительно сокращает время их последующего чтения и обработки.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
varchar(255) |
Первичный ключ. Уникальный идентификатор кеш-записи (Cache ID). Обычно представляет собой имя конфигурационного объекта, например, system.site.
|
data |
blob |
Сериализованные и, опционально, сжатые данные конфигурации. Именно здесь хранятся сами кешированные значения. |
expire |
int |
Временная метка Unix, указывающая срок действия кеш-записи. Значение 0 означает, что запись не имеет срока годности. Значение -1 (Cache::PERMANENT) означает, что запись никогда не истекает и должна быть удалена только при явном сбросе кеша.
|
created |
int |
Временная метка Unix, указывающая, когда была создана данная кеш-запись. |
serialized |
smallint |
Флаг, указывающий, были ли данные сериализованы перед сохранением. 1 - данные сериализованы, 0 - нет.
|
tags |
longtext |
Список тегов кеша, разделенных переводом строки. Теги используются для инвалидации (признания недействительными) групп связанных кеш-записей. Например, при изменении конфигурации модуля инвалидируются все записи с тегом config:module.settings.
|
checksum |
varchar(255) |
Контрольная сумма, используемая для проверки целостности данных при использовании нескольких серверов кеширования или репликации базы данных. |
Как это работает
Когда Drupal загружает конфигурацию (например, настройки сайта из system.site), он сначала проверяет её наличие в статической памяти (статических переменных PHP). Если там её нет, система обращается к таблице cache_config для поиска кешированной версии.
Если запись найдена, не просрочена (поле expire) и валидна, данные десериализуются из поля data и возвращаются. Этот процесс намного быстрее, чем загрузка и объединение данных конфигурации из активной хранилища (например, таблицы config).
Если подходящей записи в кеше нет, конфигурация загружается из активного хранилища, подготавливается и сохраняется в cache_config для последующих запросов.
При изменении любой конфигурации через административный интерфейс или API, соответствующие кеш-записи инвалидируются. Это происходит с помощью системы тегов (поле tags). Например, сохранение настроек модуля вызовет сброс всех кеш-записей с тегом config:module.settings.
Пример SQL-запроса
Посмотреть все кешированные данные для конфигурации сайта и время их создания можно следующим запросом:
SELECT cid, created, expire
FROM cache_config
WHERE cid LIKE 'system.site%';
Для просмотра содержимого конкретной кеш-записи (с десериализацией данных):
SELECT cid, created, expire,
CASE serialized WHEN 1 THEN UNCOMPRESS(data) ELSE data END as raw_data
FROM cache_config
WHERE cid = 'system.site';
Смотрите также
-
таблицу
config,
которая хранит активную конфигурацию сайта -
таблицу
cache_bootstrap,
которая кеширует критически важные для загрузки данные -
таблицу
cache_data(или cache_default),
которая является общим кешем для данных -
таблицу
cachetags,
которая отслеживает актуальность записей по тегам