Я пытаюсь получить доступ к записям из базы данных более 8000 с 30 столбцами и записать в текстовый файл, разделенный вкладкой. Мой php-код:
$fp1 = fopen( 'obspg.txt', 'w' ); fwrite( $fp1,"RETSKU\tProduct Title\tDetailed Description\tProduct Condition\tSelling Price\tAvailability\tProduct URL\tImage URL\tManufacturer Part Number\tManufacturer Name\tCategorization\tGender\tsize\tColor\n"); //retrive records from database and write to file $result = mysqli_query($con,"SELECT * FROM `TABLE 1` "); while($row = mysqli_fetch_array($result)) { fwrite($fp1,$row[`id`]."\t".$row[`title`]."\t". $row[`description`]."\t".$row[`condition`]."\t". $row[`price`]."\t".$row[`availability`]."\t".$row[`link`]."\t". $row[`image_link`]."\t".$row[`mpn`]."\t".$row[`brand`]."\t".$row[`google_product_category`]."\t".$row[`Gender`]."\t".$row[`size`]."\t".$row[`Color`]."\n"); } fclose( $fp1 );
Но это занимает слишком много времени для выполнения. Как я могу улучшить производительность кода? Я не могу использовать более 25% использования на моем сервере.
создайте данные, которые хотите записать в переменной, и просто сделайте запись в файл. это намного эффективнее.
$fp1 = fopen( 'obspg.txt', 'w' ); $outPut = "RETSKU\tProduct Title\tDetailed Description\tProduct Condition\tSelling Price\tAvailability\tProduct URL\tImage URL\tManufacturer Part Number\tManufacturer Name\tCategorization\tGender\tsize\tColor\n"; //retrive records from database and write to file $result = mysqli_query($con,"SELECT * FROM `TABLE 1` "); while($row = mysqli_fetch_array($result)) { $outPut .= $row[`id`]."\t".$row[`title`]."\t". $row[`description`]."\t".$row[`condition`]."\t". $row[`price`]."\t".$row[`availability`]."\t".$row[`link`]."\t". $row[`image_link`]."\t".$row[`mpn`]."\t".$row[`brand`]."\t".$row[`google_product_category`]."\t".$row[`Gender`]."\t".$row[`size`]."\t".$row[`Color`]."\n"; } fwrite( $fp1,$outPut); fclose( $fp1 );