Optimisation des performances du code PHP
Fermé
nguim
Messages postés
16
Date d'inscription
mercredi 12 février 2014
Statut
Membre
Dernière intervention
25 février 2014
-
22 févr. 2014 à 12:25
Super_carotte Messages postés 1419 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 janvier 2015 - 25 févr. 2014 à 17:19
Super_carotte Messages postés 1419 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 27 janvier 2015 - 25 févr. 2014 à 17:19
A voir également:
- Optimisation des performances du code PHP
- Voici du code ascii : - Guide
- Optimisation pc - Accueil - Utilitaires
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
1 réponse
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
Modifié par mpmp93 le 25/02/2014 à 16:11
Modifié par mpmp93 le 25/02/2014 à 16:11
Bonjour,
déja 9999 lignes en 25 minutes, c'est anormal!
On peut charger 10.000 lignes en quelques secondes....
Pour commencer, si votre fichier texte fait moins de 2 Mo (4 à 5 sur certains serveurs), faites simplement:
comme ça, vous avez tout le fichier dans une seule chaîne texte très longue....
Ensuite, votre chaîne, il faut l'exploder (voir explode) en séparant chaque ligne sachant que le séparateur est "\n"
donc $meslignes est un tableau qui contient chaque ligne. Vous faites maintenant un autre explode sur les données si ces données sont séparées par le caractère " " (espace):
Ensuite vous re-construisez la chaîne à insérer en SQL avec implode:
et votre boucle foreach devient:
et enfin l'insertion de données:
et ça devriat déja aller nettement plus vite!
A+
public function meilleurProgrammeurDuMonde() { return "MOI"; } // humour
déja 9999 lignes en 25 minutes, c'est anormal!
On peut charger 10.000 lignes en quelques secondes....
Pour commencer, si votre fichier texte fait moins de 2 Mo (4 à 5 sur certains serveurs), faites simplement:
$montexte = file_get_contents("fichab.txt");
comme ça, vous avez tout le fichier dans une seule chaîne texte très longue....
Ensuite, votre chaîne, il faut l'exploder (voir explode) en séparant chaque ligne sachant que le séparateur est "\n"
$mesLignes = explode("\n", $montexte);
donc $meslignes est un tableau qui contient chaque ligne. Vous faites maintenant un autre explode sur les données si ces données sont séparées par le caractère " " (espace):
foreach($meslignes AS $ligne) { $mesdonnes = explode(" ", $ligne); ....ici la suite... }
Ensuite vous re-construisez la chaîne à insérer en SQL avec implode:
$monSql = '"'.implode('","', $ligne).'"';
et votre boucle foreach devient:
foreach($meslignes AS $ligne) { $mesdonnes = explode(" ", $ligne); $monSql = '"'.implode('","', $mesdonnes ).'"'; ....ici la suite... }
et enfin l'insertion de données:
foreach($meslignes AS $ligne) { $mesdonnes = explode(" ", $ligne); $monSql = '"'.implode('","', $mesdonnes).'"'; mysql_query("INSERT INTO coordab (IMSI, MEID, ESN1, PUK1, AKY, MDN) VALUES $monSql); }
et ça devriat déja aller nettement plus vite!
A+
public function meilleurProgrammeurDuMonde() { return "MOI"; } // humour
25 févr. 2014 à 17:19