IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Temps d'exécution d'un script PHP/MySQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut Temps d'exécution d'un script PHP/MySQL
    Sur une de mes pages de mon site internet je crée un formulaire. Dans celui je fait une liste de choix ( <select> ) de toute les communes de france ( soit environ 36 000 communes ).

    Mon script fonctionne bien, le problème que j'ai c'est que, avec IE7 la page se charge en 6sec et qu'avec FF2, elle se charge en 30sec. La différence me parait énorme .

    J'aurais aimé savoir s'il y avait moyen de changer des paramètres pour augmenter la vitesse d'exécution de mon script avec FF2.

    Pour info voila le script qui charge les données :

    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
     
    <select class="TxtBox3" name="ville">
    	<option value="-1">== Choisir ==</option>
    	<?php
    	if ( isset($_POST['ville']) ) $villes = $_POST['ville'];
    	else $villes = '';
     
    	include 'inc/connexion.php';
    	$sql = 'SELECT DISTINCT Commune from villes ORDER BY Commune';
    	$req = mysql_query($sql);
    	while ( $res = mysql_fetch_assoc($req) )
    	{
    		if ( $villes == $res['Commune'] ) $selected = 'selected';
    		else $selected = '';
    		echo '<option value="'.$res['Commune'].'" '.$selected.'>'.$res['Commune']."</option>\n";
    	}
    	mysql_close(); 
    	?>
    	</select>
    La table 'villes' est de type MyISAM et j'utilise Apache 2.2.3 PHP 5.2.1 . Et ma page est en HTTPS.

  2. #2
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Sur une boucle de 36000 itérations il vaudrait mieux éviter un test (en plus un comparaison de chaînes à chaque itération.

    J'utiliserais un flag me disant si j'ai déjà trouvé ou pas la ville genre :

    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
     
    $trouve = false;
    while ( $res = mysql_fetch_assoc($req) )
    {
    	if ( !$trouve )
    	{
    		if( $villes == $res['Commune'] )
    		{
    			$trouve = true;
    			$selected = 'selected';
    		}
    	}
    	else $selected = '';
    	echo '<option value="'.$res['Commune'].'" '.$selected.'>'.$res['Commune']."</option>\n";
    }
    Ce n'est qu'un exemple et y'a peut etre mieux...surtout que là faut espérer trouvé la ville au début.

    A part ca peut etre qu'en utilisant l'output buffer ca irait mieux.

  3. #3
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Je vais tester cela, voir si je gagne en performance, merci.

    Résultat : Avec mon FF ca prend encore plus de temps ( 52sec ) et avec ie quasi le même temps ( 5-6sec ).

    Je pense que je vais changer ma façon de faire c'est bien trop gros a charger d'un seul coup. Je vais me diriger vers de l'auto complétion.

    Merci de t'être penché sur mon problème.

    Je trouve ca quand même assez bizarre qu'il est y une telle différence de temps entre ces deux navigateurs !

  4. #4
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Par défaut
    Salut,

    Juste en passant si tu fais des pré-choix avant du genre région --> département --> commune ca t'évitera de charger les 36 000??? Et ca peux éviter des erreurs, je sais que dans la région pays de la loire y'a 2 communes du nom d'Allonnes 1 en Sarthe (72) et une en Maine et Loire (49)....
    Peut etre que tu as besoin de toutes les communes, je ne connais pas tes contraintes.

  5. #5
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    J'ai bien la contrainte sur toutes les communes ( le fait qu'il existe plusieurs commune de même nom n'a guère d'importance dans mon cas ).

    J'ai fait des testes sur des pc différents avec des versions de FF et IE différentes ( ie 6 et FF1.2 ) On retrouve toujours une différence entre les deux naviateurs, mais l'attente est moins longue.

    Enfin bref en passant par de l'auto complétion, je n'ai plus de soucis et ca en facilite même la recherche.

    J'vais mettre en résolue même si c'est résolu en utilisant une autre technique.

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. limitation de temps pour l'exécution d'un script php
    Par franco9 dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2013, 14h09
  3. Temps d'exécution d'un script PHP
    Par yann123456 dans le forum Langage
    Réponses: 1
    Dernier message: 26/06/2009, 12h55
  4. Temps d'exécution d'un script PHP
    Par punx120 dans le forum Langage
    Réponses: 10
    Dernier message: 24/11/2008, 11h50
  5. Réponses: 3
    Dernier message: 24/06/2007, 01h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo