Полный цикл в digital

Кеширование запросов ORM

Кеширование выборки позволяет сохранять результаты запросов для повторного использования. По умолчанию кеширование отключено.

Для включения кеширования используйте ключ cache в методе getList:

$res = \Bitrix\Main\GroupTable::getList([
    'filter' => ['=ID' => 1],
    // Время жизни кеша в секундах
    'cache' => ['ttl' => 3600]
]);

То же самое можно сделать с помощью объекта Query:

$query = \Bitrix\Main\GroupTable::query();
$query->setSelect(['*']);
$query->setFilter(['=ID' => 1]);
$query->setCacheTtl(150);
$res = $query->exec();

Особенности кеширования

Если данные найдены в кеше, в результате кешированной выборки вернется объект ArrayResult.

По умолчанию выборки с JOIN не кешируются. Чтобы включить кеширование с JOIN используйте ключ cache_joins:

"cache" => ["ttl" => 3600, "cache_joins" => true];
// или
$query->cacheJoins(true);

Сброс кеша

Кеш автоматически сбрасывается при вызове методов add, update, delete. Для принудительного сброса кеша используйте метод cleanCache():

// Пример для таблицы пользователей
\Bitrix\Main\UserTable::getEntity()->cleanCache();

Настройки администратора

Администратор проекта может запретить кеширование или изменить время жизни кеша TTL.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!