sql >> Database >  >> RDS >> Mysql

De beste manier om veel waarden in mysqli in te voegen?

U zou de snelheid aanzienlijk moeten kunnen verhogen door uw inserts in een transactie te plaatsen. U kunt uw voorbereidings- en bindinstructies ook buiten uw lus plaatsen.

$array = array("array", "with", "about", "2000", "values");
$query = "INSERT INTO table (link) VALUES (?)";
$stmt = $mysqli->prepare($query);
$stmt ->bind_param("s", $one);

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$stmt->close();
$mysqli->query("COMMIT");

Ik heb deze code getest met 10.000 herhalingen op mijn webserver.

Zonder transactie:226 seconds. Met transactie:2 seconds. Of een two order of magnitude speed increase , althans voor die test.



  1. PostgreSQL10 upgraden naar PostgreSQL11 zonder downtime

  2. Beste ontwerppatroon om databaseverbinding te sluiten wanneer zich een uitzondering voordoet

  3. Wat is het verwachte gedrag voor meerdere set-retourfuncties in de SELECT-component?

  4. Benoemde tijdzones instellen in MariaDB