对mySQL的批量更新工作太慢了

时间:2016-03-13 21:58:21

标签: mysql csv

目前我使用一个简单的代码来更新我的mysql中的性别

我的代码:

    <?php
ini_set('max_execution_time', 30000); 
    $row = 0;
    if (($handle = fopen("list.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $num = count($data);

            for ($c=0; $c < $num; $c++) {
            $name = $data[0];   
            $gender = $data[1]; 
            }
    // connect to db
    mysql_connect("***", "***", "***") or die("Connection Failed");
    mysql_select_db("info")or die("Connection Failed");
        $query = "UPDATE data SET gender = '$gender' WHERE fname = '$name'";
        if(mysql_query($query)){
                        $row++;
    echo "$row: ";      
    echo '<font color="RED">' . $name  . '</font> <br>';  

        }


        }
        fclose($handle);
    }
 ?>

代码工作但非常慢, 每小时可处理多达10k条记录,对我来说太慢了

有人可以告诉我如何处理它以提高速度

1 个答案:

答案 0 :(得分:2)

您在迭代中的每个中重新连接到数据库。从 mysql_connect mysql_select_db 调用循环...