ней 1 миллион записей, и 12 столбцов.
Моя задача создать Excel файл, с этими записями и столбцами. Я использую эту библиотеку - Spreadsheet
Все стандартно:
1. Выгружаю всю таблицу DB:table(prices)-get()
2. Делаю foreach ($prices)
3. Внутри foreach заполняю строки в Excel файле $oSpreadsheet_Out->setActiveSheetIndex(0)->setCellValue("A$k", $price->brand); и так далее
Сама выгрузка из БД и foreach работают довольно быстро, примерно 1 минуту, но когда я подрубаю сохранение файла в spreadsheet, то это очень - очень долго.
Какие есть альтернативные варианты выгрузить таблицу?
Всю таблицу можно и средствами mysqldump выгрузить
1. Не получать все записи, а использовать встроенный механизм на чанках внутри пакета https://github.com/SpartnerNL/Laravel-Excel НО иногда и он не справляется, поэтому: 2. на каждой итерации форыча пишем прямо в csv файл через append, то есть добавляя строки в конец файла.
Обсуждают сегодня