将CSV写入MySql速度慢

时间:2018-03-05 19:08:13

标签: mysql csv pdo

我将xls文件更改为csv格式以写入MySql。因为当我试图将字段从xls文件保存到MySQL时,我得到60秒的超时错误。现在,当我写echo代码时,我只需5秒即可获得所有数据。但是,当我尝试将其保存到MySQL 60秒是不够的。这是我的代码:

$csvfile = fopen("data.csv","r");
    fgetcsv($csvfile);
    while (($data = fgetcsv($csvfile))!==FALSE){
        $ekle = $dbpdo->prepare("INSERT INTO isletmeler (sno) VALUES ('".$data[0]."')");
        $ekle->execute();   
    }

如何加快将数据保存到MySql的速度?我在csv中有29列,但我试图只保存1列,看看它是否保存了我的所有数据。我在csv中有大约2700个字段,但它在60秒内只节省了大约1000个字段。

1 个答案:

答案 0 :(得分:0)

您可以重新构建代码,以便只准备一次...

$csvfile = fopen("data.csv","r");

fgetcsv($csvfile);
$ekle = $dbpdo->prepare("INSERT INTO isletmeler (sno) VALUES (?)");
while (($data = fgetcsv($csvfile))!==FALSE){
    $ekle->execute([$data[0]]);   
}

这减少了每次重新准备语句的需要。