Мне нужно получить полмиллиона строк из базы данных с помощью Laravel и экспортировать их в файл Excel.
Проблема в том, что ресурс, который я экспортирую, имеет довольно много соединений, и когда я его экспортирую вот так (псевдокод)
foreach( myResources as resource ) {
convertToExcelRow(resource);
convertToAnotherExcelRow(resource->joinedTable);
}
Laravel создает полмиллиона запросов + еще один, чтобы сделать объединения.
Теперь, для большинства ситуаций, я мог бы использовать энергичную загрузку, которая загрузит все в одном запросе (намного быстрее), но для таких больших запросов laravel вызовет ошибку MySQL (плюс это очень медленно), потому что список строк идентификаторы, которые входят в WHERE id IN
(сотни тысяч идентификаторов)
Есть ли у Laravel способ загружать пакеты?
Например, разбейте список из 100 000 идентификаторов на 10 запросов, каждый из которых содержит 10 000 идентификаторов или что-то подобное.