1

さて、私は常にデータベースにインポートする約 10 万行から 100 万行のテキストを取得します。私が使用するコードは次のとおりです。

$lines = new SplFileObject('/home/file.txt');
while(!$lines->eof()) {
    $lines->next();       //Skipping first line
    $row = explode(',',$lines);
    for($i = 0; $i<4; $i++){
        if(!isset($row[$i])){
            $row[$i] = null;
        }
    }
    $y = (float) $row[1];
    $z = (float) $row[2];
    $load_query = "INSERT IGNORE INTO new (datetime_gmt,field2,field3)
    VALUES ('".$row[0]."','".$y."','".$z."');";

    if(!$mysqli->query($load_query)){
      die("CANNOT EXECUTE".$mysqli->error."\n");
    }
}
$lines = null;

ただし、時間がかかりすぎます。それを行うためのより速い方法はありますか、それともこの方法にこだわっていますか?

PS。MySQL の「INSERT DATA INFILE」は使いたくない。

4

1 に答える 1