Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor maneira de inserir muitos valores no mysqli?


Você deve ser capaz de aumentar muito a velocidade colocando suas inserções dentro de uma transação. Você também pode mover suas instruções prepare e bind para fora do seu 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");

Eu testei este código com 10.000 iterações no meu servidor web.

Sem transação:226 seconds. Com transação:2 seconds. Ou um two order of magnitude speed increase , pelo menos para esse teste.