sql >> Databasteknik >  >> RDS >> Mysql

Bästa sättet att INFOGA många värden i mysqli?

Du bör kunna öka hastigheten avsevärt genom att placera dina insatser i en transaktion. Du kan också flytta dina prepare- och bind-satser utanför din loop.

$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");

Jag testade den här koden med 10 000 iterationer på min webbserver.

Utan transaktion:226 seconds. Med transaktion:2 seconds. Eller en two order of magnitude speed increase , åtminstone för det testet.



  1. SQL-uppdateringsfråga med joins

  2. AMD EPYC 7002-seriens processorer och SQL Server

  3. INSTR() Funktion i Oracle

  4. Räknar antalet förekomster av ett tecken i Oracle SQL