Mysql
 sql >> Base de données >  >> RDS >> Mysql

Meilleur moyen d'INSÉRER de nombreuses valeurs dans mysqli ?

Vous devriez être en mesure d'augmenter considérablement la vitesse en mettant vos insertions à l'intérieur d'une transaction. Vous pouvez également déplacer vos instructions de préparation et de liaison en dehors de votre boucle.

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

J'ai testé ce code avec 10 000 itérations sur mon serveur Web.

Sans transaction :226 seconds. Avec transaction :2 seconds. Ou une two order of magnitude speed increase , au moins pour ce test.