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);
Partager