Таблица cache_locales
Таблица cache_locales является частью системы кеширования Drupal и предназначена для хранения предварительно обработанных данных переводов интерфейса. Это значительно повышает производительность системы, особенно на многоязычных сайтах.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
varchar(255) |
Уникальный идентификатор кеш-записи. Обычно содержит комбинацию языка и контекста перевода. |
data |
longblob |
Сериализованные данные перевода, хранящиеся в бинарном формате. Содержит массив переводов для конкретного языка и контекста. |
expire |
int |
Время истечения срока действия кеш-записи в формате Unix timestamp. Значение 0 означает, что запись не имеет срока годности.
|
created |
int |
Время создания кеш-записи в формате Unix timestamp. |
serialized |
smallint |
Флаг, указывающий на то, что данные были сериализованы перед сохранением. Значение 1 означает сериализованные данные, 0 - нет.
|
Как это работает
Когда Drupal需要 перевести строку интерфейса, он сначала проверяет наличие перевода в кеше cache_locales. Если перевод найден и срок его действия не истек, система использует его без обращения к основной таблице переводов locales_source.
Кеш создается при первом запросе перевода для конкретного языка и контекста. Все последующие запросы используют уже закешированные данные, что значительно снижает нагрузку на базу данных.
При изменении переводов через административный интерфейс или импорт новых переводов, соответствующие кеш-записи автоматически очищаются (инвалидируются), чтобы обеспечить актуальность данных.
Таблица использует механизм кеширования Drupal, который может быть настроен для использования различных бэкендов (база данных, Memcache, Redis и др.), хотя по умолчанию используется база данных.
Пример SQL-запроса
Посмотреть все активные кеш-записи для русского языка:
SELECT cid, created, expire
FROM cache_locales
WHERE cid LIKE 'ru%' AND (expire = 0 OR expire > UNIX_TIMESTAMP())
ORDER BY created DESC;
Смотрите также
-
таблицу
locales_source,
которая хранит исходные строки для перевода -
таблицу
locales_target,
которая содержит готовые переводы строк -
таблицу
cache_bootstrap,
которая хранит кеш начальной загрузки системы -
таблицу
cache_data,
которая используется для общего кеширования данных