Voila j'ai crée une base de données assez conséquente (environ 540 Mo) et j'ai une table nommé protéine qui doit etre mis a jour, cette table contient environ 600 000 entrées. Pour mettre a jour cette page je dispose d'un fichier csv de 200Mo.
J'ai essayé pas mal de chose mais tous s'avère ultra lent voici ma méthode
Avez vous une solution plus rapide s'il vous plait car la c'est vraiment mais alors vraiment long j'ai laissé tourné 8h et ca n'était pas fini
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 $requete="select ACCES_NUMBER from protein "; $result=mysql_query($requete); while ($ligne = mysql_fetch_assoc($result)) { $tab_acces_nb[]=$ligne['ACCES_NUMBER']; } $nom_fichier="uniprot.emblformat.parse"; $fichier=fopen($nom_fichier,'r'); while (!feof($fichier)){ $ligne = fgets($fichier,4096); $liste=explode("\t",$ligne); $id_uniprot=$liste[0]; $acces_id=$liste[1]; $go=$liste[3]; if (in_array($acces_id,$tab_acces_nb)){ $requete="update protein set id_uniprot='$id_uniprot',go='$go' where acces_number='$acces_id' "; mysql_query($requete) or exit("Erreur : ".mysql_errno()); } } fclose($fichier);






Répondre avec citation



; je suppose que ce message indique que j'ai atteint la limite de la memoire alloué a phpmyadmin non ?
mais c'est pas vrai il y a toujours un Pb, Vos solutions a tous les deux je l'ai ai compris et en plus ca fonctionne mais la jointure sur l'acces_number ne marche pas car il y a un espace devant l'acces_number dans le fichier csv, je présise que ce fichier csv n'est pas de moi et qu'en gros on m'a dit tiens j'ai parsé ce fichier maintenant débrouille toi avec 
Partager