Таблица cache_filter
Таблица cache_filter используется системой Drupal для хранения обработанного контента, который прошел через систему текстовых фильтров (текстовые форматы). Это значительно ускоряет отображение страниц, так как避免了 повторной обработки контента при каждом запросе.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
cid |
varchar(255) |
Первичный ключ. Уникальный идентификатор кеш-записи. Обычно формируется как filter: + ID контента + : + текстовый формат.
|
data |
longblob |
Содержит сериализованные данные отфильтрованного контента. Может хранить как готовый HTML, так и другие обработанные данные. |
expire |
int |
Временная метка Unix, указывающая, когда запись кеша становится недействительной. Значение 0 означает, что запись никогда не истекает.
|
created |
int |
Временная метка Unix, указывающая, когда была создана запись кеша. |
serialized |
smallint |
Флаг, указывающий, сериализованы ли данные в поле data. 1 - данные сериализованы, 0 - нет.
|
tags |
longtext |
Список тегов кеша, разделенных переводом строки. Используется для инвалидации групп кеш-записей. |
checksum |
varchar(255) |
Контрольная сумма, используемая для проверки целостности данных. |
Как это работает
Когда Drupal обрабатывает текст (например, тело ноды или комментария) с применением текстового формата (фильтры, например, "Ограниченный HTML" или "Полный HTML"), результат этой ресурсоемкой операции сохраняется в таблице cache_filter.
При последующих запросах того же контента система сначала проверяет наличие действительной записи в кеше. Если запись найдена и не устарела (поле expire), Drupal использует готовый результат из поля data,避免了 повторного запуска фильтров.
Кеш становится недействительным (инвалидируется) при изменении исходного контента, изменении конфигурации текстового формата или по истечении срока действия, заданного в настройках производительности сайта. Инвалидация часто происходит по тегам, указанным в поле tags.
Пример SQL-запроса
Посмотреть все кеш-записи для определенного текстового формата (например, с ID 1) можно следующим запросом:
SELECT cid, created, expire
FROM cache_filter
WHERE cid LIKE 'filter:%:1'
ORDER BY created DESC;
Очистить все просроченные записи из кеша:
DELETE FROM cache_filter
WHERE expire != 0 AND expire < UNIX_TIMESTAMP();
Смотрите также
-
таблицу
cache_bootstrap,
которая хранит кеш для критически важных данных начальной загрузки -
таблицу
cache_page,
которая хранит кешированные версии целых страниц -
таблицу
cache_data,
которая используется для хранения произвольных кешированных данных -
таблицу
filter_format,
которая хранит конфигурации текстовых форматов