Comment importer rapidement de grandes quantités de données dans la base de données avec PHP
La première méthode : utiliser insert into, le code est la suivante :
$params = array(‘value'=>'50′); set_time_limit(0); echo date(“H:i:s”); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); }; echo date(“H:i:s”);
Le dernier affichage est : 23:25:05 01:32:05, ce qui signifie que cela a pris plus de 2 heures !
Le deuxième méthode : utiliser la soumission de transaction, l'heure finale affichée pour l'insertion du lot dans la base de données (soumise tous les 10 éléments) est : 22:56:13 23:04:00, soit un total de 8 minutes et 13 secondes. Le code est le suivant :
echo date(“H:i:s”); $connect_mysql->query(‘BEGIN'); $params = array(‘value'=>'50′); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); if($i%100000==0){ $connect_mysql->query(‘COMMIT'); $connect_mysql->query(‘BEGIN'); } } $connect_mysql->query(‘COMMIT'); echo date(“H:i:s”);
Troisième méthode : utilisez des instructions SQL optimisées
pour fusionner les instructions SQL, utilisez insert into table () values (),(),(),()
puis insérez-les toutes en même temps si la chaîne. est trop long, vous devez configurer MYSQL,
Exécuter dans la ligne de commande mysql :
set global max_allowed_packet = 2*1024*1024*10;
Le temps consommé est : 11:24:06 11:25:06;
Il n'a fallu qu'une minute pour insérer 2 millions de données de test ! Codez comme suit :
$sql= “insert into twenty_million (value) values”; for($i=0;$i<2000000;$i++){ $sql.=”('50′),”; }; $sql = substr($sql,0,strlen($sql)-1); $connect_mysql->query($sql);
Résumé : lors de l'insertion de gros lots de données, la première méthode est sans aucun doute la pire, tandis que la deuxième méthode l'est. plus largement utilisée dans les applications pratiques, et la troisième méthode est plus efficace dans l'insertion. Elle est plus adaptée aux données de test ou à d'autres exigences faibles, et la vitesse est vraiment rapide.
Tutoriel recommandé : Tutoriel vidéo PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!