Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Redesenho do código do aplicativo para reduzir no. de Ocorrências de Banco de Dados da Perspectiva de Desempenho


no seu loop while apenas construa a string de consulta e execute a instrução fora do loop. Então, algo assim deve funcionar (não tenho certeza sobre a sintaxe, já que faz muito tempo que escrevi php, mas deve funcionar:
public function initiateInserts()
{
    //Open Large CSV File(min 100K rows) for parsing.
    $this->fin = fopen($file,'r') or die('Cannot open file');

    //Parsing Large CSV file to get data and initiate insertion into schema.
    $query = "";
    while (($data=fgetcsv($this->fin,5000,";"))!==FALSE)
    {
        $query = $query . "INSERT INTO dt_table (id, code, connectid, connectcode) 
                 VALUES (" . $data[0] . ", " . $data[1] . ", " . $data[2] . ", " . $data[3] . ")";
    }
     $stmt = $this->prepare($query);
     // Execute the statement
     $stmt->execute();
     $this->checkForErrors($stmt);
}