cvex $CveX | Bonjour à tous,
J'ai crée un script PHP qui permet de transfèrer une base de donnée vers une autre base de donnée.
Le problème est que ma base de donnée est très grande, environ 200 000 enregistrement.
Un premier problème venait du faite que le temps d'execution du script été trop longue (max_execution_time = 30), que j'ai réglé à 300.
Mais le second est un problème que je ne sait pas résoudre, Internet Explorer bloque avant la fin du traitement.
Le script tourne 50-60s et il se bloque.
72 000 donnée ont été transféré sur 200 000.
Peut-être connaissez-vous une solution pour palier à ce problème ou peut-être une optimisation du code.
En voici un extrait :
Code :
- $linkdb1 = mysql_connect($serv_db1, $nomutil_db1, $mdp_db1) or die ("Impossible de se connecter à l'ancienne base de donnée" );
- mysql_select_db($nombase_db1, $linkdb1) or die ("Impossible de selectionner la base de donnée 1" );
- $sql_article = mysql_query("SELECT code7, descriptif, renseignements FROM article", $linkdb1) or die ("Erreur de lecture de la table Article<br /><br /><b>".mysql_error()."</b>" );
- mysql_close($linkdb1);
- $linkdb2 = mysql_connect($serv_db2, $nomutil_db2, $mdp_db2) or die ("Impossible de se connecter à la nouvelle base de donnée" );
- mysql_select_db($nombase_db2, $linkdb2) or die ("Impossible de selectionner la base de donnée" );
- $nb_article = 0;
- while($article = mysql_fetch_row($sql_article))
- {
- echo $nb_article."<br />";
- $nb_article = $nb_article + 1;
- mysql_query("INSERT INTO articles (code, libelle, description) VALUES ('".$article[0]."', '".$article[1]."', '".$article[2]."')", $linkdb2);
- }
- mysql_close($linkdb2);
- echo "Transfère de la table article réalisé avec succès !";
|
Merci d'avance ! Message édité par cvex le 29-05-2006 à 10:35:52
|