sql >> Databáze >  >> RDS >> Mysql

Redesign kódu aplikace s cílem snížit počet databázových hitů z hlediska výkonu

ve vaší smyčce while vytvořte pouze řetězec dotazu a proveďte příkaz mimo smyčku. Takže něco takového by mělo fungovat (nejsem si jistý syntaxí, protože jsem psal php už dlouho, ale mělo by to fungovat:

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


  1. Groovy SQL Oracle Array Funkce/procedura Registrace parametrů

  2. Přepsání jedinečných indexovaných hodnot

  3. Snadný způsob exportu tabulky SQL bez přístupu k serveru nebo phpMyADMIN

  4. SQLSTATE[42S22]:Sloupec nenalezen:1054 Neznámý sloupec „id“ v „klauzuli where“ (SQL:vyberte * z „skladeb“, kde „id“ =5 limit 1)