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

Beste Möglichkeit, viele Werte in mysqli einzufügen?

Sie sollten in der Lage sein, die Geschwindigkeit erheblich zu erhöhen, indem Sie Ihre Einfügungen in eine Transaktion einfügen. Sie können Ihre Anweisungen zum Vorbereiten und Binden auch außerhalb Ihrer Schleife verschieben.

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

Ich habe diesen Code mit 10.000 Iterationen auf meinem Webserver getestet.

Ohne Transaktion:226 seconds. Mit Transaktion:2 seconds. Oder eine two order of magnitude speed increase , zumindest für diesen Test.