Mysql
 sql >> Base de données >  >> RDS >> Mysql

Refonte du code d'application pour réduire le nombre. des accès à la base de données du point de vue des performances

sur votre boucle while, créez uniquement une chaîne de requête et exécutez l'instruction hors boucle. Donc, quelque chose comme ça devrait fonctionner (je ne suis pas sûr de la syntaxe car cela fait longtemps que j'écris du php mais cela devrait fonctionner :

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);
}