致命错误:内存不足 - 优化php脚本

时间:2016-11-04 15:49:42

标签: php mysql

我有一个包含400万条记录的sql数据库,我已经构建了一个php脚本来将sql转换为json但是即使我设置了memory_limit 4gb / 8gb(我有的总RAM)也不够运行脚本。如何更改脚本以克服此问题。我正在使用XAMPP:

set_time_limit(0);
ini_set('memory_limit', '20000M');
//open connection to mysql db
$connection = mysqli_connect("localhost","root","","newskill") or die("Error " . mysqli_error($connection));
//fetch table rows from mysql db
$sql = "SELECT * FROM `ip_city_country_location`";
$result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));
//create an array
$emparray = array();
while($row =mysqli_fetch_assoc($result)) {
    $emparray[] = $row;
}
echo json_encode($emparray);
$fp = fopen('empdata.json', 'w');
fwrite($fp, json_encode($emparray));
fclose($fp);

在阅读文件时也尝试使用CSV,但速度非常慢

$file = fopen("iplocation.csv","r");
$i = 1;
while(! feof($file)) {
    if ($i <= 1000000) {
        $arr[] = fgetcsv($file);
    } else {
        break;
    }
    $i++;
}
var_dump($arr);

0 个答案:

没有答案