Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Anwendungscode-Redesign zur Reduzierung von Nr. von Datenbanktreffern aus Performance-Perspektive

Erstellen Sie in Ihrer While-Schleife nur eine Abfragezeichenfolge und führen Sie die Anweisung außerhalb der Schleife aus. Also sollte so etwas funktionieren (ich bin mir nicht sicher über die Syntax, da es lange her ist, dass ich PHP geschrieben habe, aber es sollte funktionieren:

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