我有一个包含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);