Améliorer les performances du script PHP
	
	
		Bonjour à tous ! 
J'ai mon code qui permet: 
Ouvrir un fichier texte ayant la structure suivante: 
23733000227 
23733000228 
23733000229 
23733000230 
23733000231 
23733000232 
**Le fichier a plus de 20 000 lignes** 
1- ) 
je dois prendre chacun de ces nombres et comparer ses 7 derniers chiffres avec les 7 
derniers chiffres de chacun des nombres de la première colonne (IMSI) de la table de ma 
Base de données MySQL ci-dessous: 
--(IMSI)-------------(MDN) 
624030743830000 23733013285 
624030743830001 23733013286 
624030743830002 23733013287 
624030743830004 23733013288 
624030743830005 23733013289 
624030743830006 23733013290
 
**Ma table a 500 000 Lignes** 
2- ) 
S'il y'a 1 ( il est unique s'il existe), il le récupère (IMSI) et récupère aussi le nombre qui se 
trouve sur la même ligne (MDN) à deuxième colonne et affiche les trois: 
- Nombre de départ 
- IMSI trouvé semblable ( nombre de la colonne IMSI donc les 7 derniers chiffres sont 
semblables aux 7 derniers chiffres du nombre contenu dans le fichier texte) 
- MDN (nombre de la colonne MDN) de la même ligne que l'IMSI trouvé semblable au 
nombre de départ. 
Mon code fonctionne, il fait le travail attendu. Mais le temps d'exécution est extrêmement long **plus de 30 minutes**. 
Voici mon script: 
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
   | <?php
set_time_limit(0);
 
//Connexion à la BD
mysql_connect('localhost','root','');
mysql_select_db('gestnum');
 
//On ouvre le fichier en question (en lecture seule)
$handle = fopen("fichiernum.txt", "r");
$i=0;
 
echo '<table align=" justify" border = 2 valign = middle>';
//on parcours tout le fichier (en faisant croire qu'il s'agit d'un csv pour faciliter le traitement)
while ($data = fgetcsv($handle, 10000, ",")) 
	  {
 
//on ne récupère que les 7 derniers caractères de chaque ligne avec la fonction substr
	$rest = substr($data[0],-7);
 
//On établie une requéte qui ne remonte que les MDN finissant par les 7 derniers chiffre de notre $rest. Un seul résultat remonte donc...
$sql = mysql_query('SELECT * FROM  `coordab` WHERE  `IMSI` LIKE  "%'.$rest.'"');
$result =mysql_fetch_array($sql);
$i++;
 
//on affiche les résultats demandés
echo '<tr>';
echo '<th>'.$i.'</span>'.'</th>';
echo '<th>'.$data[0].'</th>';
echo '<th>'.$result['IMSI'].'</th>';
echo '<th>'.$result['MDN'].'</th>';
echo '</tr>';
    }
echo '</table>';
//On ferme le fichier
fclose($handle);
echo'</div>';
 
?> | 
 S'il vous plait aidez moi à optimiser mon script pour réduire ce temps d'exécution. 
Ou bien montrez moi une autre méthode plus performante pour faire le même travail. 
Merci d'avance.