Как оптимизировать сохранение в CSV-файл более 700 тыс. Строк - Laravel - PullRequest
0 голосов
/ 08 мая 2020

Мне нужно записать более 700 тыс. Строк в файл csv. Задача должна длиться менее 30 секунд, но работает 70 секунд. Как я могу оптимизировать этот процесс?

$users = User::all();        

    $callback = function () use ($users) {
        $fh = fopen('php://output', 'w');
        fputs($fh, "\xEF\xBB\xBF");

        foreach ($users as $user) {

            if ($user->writer) {
                $books = $user->books;
                foreach ($books as $book) {
                    fputcsv($fh, Arr::prepend($data, $book['name']), ';');
                }
            }
        }
    };
...