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

Il modo migliore per INSERIRE molti valori in mysqli?

Dovresti essere in grado di aumentare notevolmente la velocità inserendo i tuoi inserti all'interno di una transazione. Puoi anche spostare le tue istruzioni di preparazione e associazione al di fuori del tuo ciclo.

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

Ho testato questo codice con 10.000 iterazioni sul mio server web.

Senza transazione:226 seconds. Con transazione:2 seconds. O un two order of magnitude speed increase , almeno per quel test.