Таблица cache_toolbar
Таблица cache_toolbar является одной из стандартных кеш-таблиц Drupal и используется для хранения предварительно сгенерированных данных, связанных с панелью инструментов (Toolbar). Это позволяет значительно ускорить отображение панели инструментов для аутентифицированных пользователей.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
varchar(255) |
Первичный ключ. Уникальный идентификатор кеш-записи. Содержит ключ кеша, который обычно включает контекст и идентификатор пользователя. |
data |
longblob |
Содержит сериализованные данные кеша. Здесь хранится предварительно отрендеренный HTML-код панели инструментов или другие данные, необходимые для её построения. |
expire |
int |
Время истечения срока действия кеш-записи в формате Unix timestamp. Значение 0 означает, что запись не имеет срока годности.
|
created |
int |
Время создания кеш-записи в формате Unix timestamp. |
serialized |
smallint |
Флаг, указывающий на то, что данные в поле data были сериализованы. 1 - данные сериализованы, 0 - нет.
|
tags |
longtext |
Список тегов кеша, разделенных переводом строки. Теги используются для инвалидации групп кеш-записей. |
checksum |
varchar(255) |
Контрольная сумма для тегов, используемая для проверки целостности данных при инвалидации кеша. |
Как это работает
Когда пользователь с соответствующими правами входит на сайт, модуль Toolbar собирает данные для отображения (меню, количество непрочитанных сообщений в логах и т.д.). Поскольку этот процесс может быть ресурсоемким, результат кешируется в таблице cache_toolbar.
Ключ кеша (cid) обычно включает идентификатор пользователя и контекст, что позволяет иметь различные кешированные версии панели для разных пользователей и языков.
При последующих запросах система проверяет наличие валидной кеш-записи для данного пользователя. Если запись найдена и её срок не истек, данные извлекаются из кеша, что позволяет избежать повторного выполнения тяжелых операций по построению панели.
Инвалидация (очистка) кеша происходит при различных событиях: изменении прав пользователя, обновлении меню, очистке кеша через административный интерфейс. Это обеспечивается системой тегов Drupal Cache API.
Пример SQL-запроса
Посмотреть все активные кеш-записи для панели инструментов можно следующим запросом:
SELECT cid, created, expire
FROM cache_toolbar
WHERE expire = 0 OR expire > UNIX_TIMESTAMP();
Смотрите также
-
таблицу
cache_default,
которая содержит кеш по умолчанию -
таблицу
cache_render,
которая хранит кешированные данные рендеринга -
таблицу
cache_menu,
которая хранит кешированные данные меню -
таблицу
cache_bootstrap,
которая хранит кешированные данные начальной загрузки