Здравствуйте, я пытаюсь экспортировать большую таблицу (строка 1Millions в файл CSV)
платформа usgin laravel 5.
С кодом, вставленным ниже, это не работает нормально, так как выделяет слишком много памяти. Все результаты сохраняются в памяти до тех пор, пока я не закончу запись файла (php exec)
Затем я попробовал напрямую использовать mysqli, и все в порядке, потому что каждая строка извлекается в память, а затем записывается в файл каждого цикла.< /p>
Здравствуйте, я пытаюсь экспортировать большую таблицу (строка 1Millions в файл CSV) платформа usgin laravel 5.
С кодом, вставленным ниже, это не работает нормально, так как выделяет слишком много памяти. Все результаты сохраняются в памяти до тех пор, пока я не закончу запись файла (php exec)
[b]Сначала я попробовал (ОЧЕНЬ НЕЭФФЕКТИВНО)[/b]< /p>
//ADDs content to file if(!file_put_contents($filePath, implode(',', $row).PHP_EOL, FILE_APPEND)){ throw new Exception("Cannot write FILE: {$filePath}"); } }
//check file size created $fileSize = filesize($filePath); $reportString = "Created file at: $filePath of ($fileSize)"; //report print($reportString);
RETURN TRUE; } [/code]
[b]Затем я попробовал напрямую использовать mysqli, и все в порядке, потому что каждая строка извлекается в память, а затем записывается в файл каждого цикла.[/b]< /p>
[code] //conection: $link = mysqli_connect(env('DB_HOST'),env('DB_USERNAME'),env('DB_PASSWORD'),env('DB_DATABASE')) or die("Error " . mysqli_error($link));
//consultation:
$query = "SELECT * FROM $mytable WHERE ts_activity>='$mins';" or die("Error in the consult.." . mysqli_error($link));