sql >> Base de Datos >  >> RDS >> Mysql

Rediseño del código de aplicación para reducir el no. de aciertos en la base de datos desde la perspectiva del rendimiento

en su bucle while solo cree una cadena de consulta y ejecute la declaración fuera del bucle. Así que algo como esto debería funcionar (no estoy seguro acerca de la sintaxis ya que hace mucho que he escrito php pero debería 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);
}