5.4 Количество за раз. С помощью этого пункта настроек можно дозировать нагрузку на сервер.
Система работы построена следующим образом.
Модуль для получения данных о товарах с базы делает не один общий запрос а разбивает выборку на пару запросов, например по 10000 товаров.
Зачем это делать? Когда мы забираем за один заход весь товар идет сильная нагрузка на оперативную память сервера. В итоге получим ошибку Allowed memory size of которая говорит о том что скрипт потребил больше памяти чем есть из-за чего он оборвался в процессе выполнения. Само собой при таком подходе ни о какой работе выборки и речи быть не может.
Как сделано в UniXML? В модуле в этой настройке можно поставить количество выборки за раз.
Например если у вас в магазине 78 000 товаров. И 256МБ оперативной памяти.
Вы поставили за раз 20000 - модуль заберет все товары с базы за 4 захода: 20000, 20000, 20000, 18000. Допустим у нас на 10000 товаров нужно 100МБ оперативной памяти (зависит от многих параметров, для примера), тогда для 20000 товаров модулю нужно будет 200МБ памяти, что входит в лимит. А вот если бы мы забирали все товары без дозировки то у нас сразу же надо было 780МБ оперативной памяти что гораздо больше чем 256МБ что есть на хостинге.
По умолчанию значение количества за раз 10000. Чем больше число - тем быстрее модуль генерирует, но потребляет больше памяти, чем меньше число - тем дольше модуль генерирует, но потребляет меньше памяти. Таким образом мы можем дозировать нагрузку на сервер.
В логе выгрузки или же в отчете о генерации фида в файл будет строка Всего итераций - именно она показывает количество блоков для забора информации о товарах.
В параметрах системы UniXML настройка находится в $data['step']