26,000行のcsvファイルがあり、行をループして、250,000以上のレコードを持つテーブルのレコード(場合によっては複数)を更新しています。現時点では、その時代を迎えました!これをより速く行う別の方法があるかどうか疑問に思っていました(コードまたはmysql / etcで)
$row = 1;
if (($handle = fopen("zip-codes-database-DELUXE-BUSINESS2.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if($row> 1){
# GET THE AREACODE FROM data 20
# name is: 21
$insert = "UPDATE ".TBLPREFIX."cities SET data = '".escape(serialize($data))."' WHERE area_code = ".$data[20]." AND title = '".trim(strtoupper($data[21]))."'";
mysql_query($insert) or die(mysql_error());
}
$row++;
}
fclose($handle);
}