sql >> Database teknologi >  >> RDS >> Mysql

Bedste måde at INDSÆTTE mange værdier i mysqli?

Du bør være i stand til at øge hastigheden kraftigt ved at lægge dine skær i en transaktion. Du kan også flytte dine forberedelses- og bind-udsagn uden for 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");

Jeg testede denne kode med 10.000 iterationer på min webserver.

Uden transaktion:226 seconds. Med transaktion:2 seconds. Eller en two order of magnitude speed increase , i hvert fald for den test.



  1. Opret en skemabundet UDF i SQL Server

  2. Find rækker med flere duplikerede felter med Active Record, Rails &Postgres

  3. How Now() virker i PostgreSQL

  4. En oversigt over PostgreSQL &MySQL krydsreplikering