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 :

[Script]Optimisation de scripts Php/MySQL (2) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Script]Optimisation de scripts Php/MySQL (2)
    Bonjour Ã* tous,

    Je viens de lire le post it intitulé "Optimisation de scripts Php/MySQL", je voulais tout simplement dire que c'est très enrichissant. Plutot que de poluer ce topics je me permet de vous poser quelques petites questions.

    Je suis webmaster d'un site imode de discussion. Celui ci accueil maintenant 80 connectés au maximum.. mes bidouillages de débutant se ressentent très fortement. Malgré un serveur dédié, des ralentissement se font voir.. grâce au topic cité précédement j'ai réussis Ã* diminuer par 3 voir 4 fois le temps d'excecution de ma page principale...
    Voici mes tites questions:

    (*) J'utilise sur une page plusieurs requêtes sql je me demandais si la fonction suivante pouvait vraiment se ressentir sur la vitesse d'éxecution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_free_result($result);
    (*) Je viens de lire le principe de connection persistante avec pconnect est ce que cela vaut la peine d'être utilisé pour un tel site? Pour le moment j'ouvre et je me connecte Ã* la base mysql sur toutes les pages du site.

    (*) Ma page index.php est la plus demandée. l'utilisateurs peut se rendre sur une autre page (par exemple la liste des connectés) en utilisant toujours la page index.php de cette manière index.php?act=listedesconnecte . Dans la source d'index.php je test la valeur de la variable act et ensuite j'inclus le code demandé.
    Est - ce que ce genre de pratique est grossière ou cela ne ralenti pas le temps d'exécution?

    (*) Comme je disais le site est orienté téléphone mobile. Cela oblige de traiter les jeux de caractères en iso et en utf-8. Pour le moment je réalise toute une série d'instruction via ereg_replace() pour transformer le code en caractères spécial html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     par exemple:
     é --> é
    Cependant j'ai lu que les ereg_replace prennent pas mal de temps Ã* exécuter. Malgré mais recherches je ne suis jamais abouti Ã* quelque chose de mieux que ca.. Existe t'il une autre solution?


    (*) J'ai programmé un système de messagerie privée. Celui ci dans une table de se type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id  int  primary key auto_increment,
    id_emmetteur int,
    id_recepteur int,
    message text,
    vu int
    Le champ id_emmetteur reprends l'identifant se référant Ã* l'emmeteur du message..
    vu est un indicateur pour savoir si le message est lu ou pas.. (O ou 1)

    Chaque chargement de page je test pour savoir si l'utilisateur possède un mesage privé..

    ce test est du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id FROM messages WHERE id_recepteur = $monid AND vu = 0;
    Les utilisateurs parlant beaucoup la table grandit Ã* une vitesse grand V. Je trouve le test barbare de devoir lire toutes la table. Y a t'il un autre moyen de procéder? Est - ce que pour vous cela semble être grossier mais convenir tout de même?




    Je vous remmercie pour avoir prit la peine d'avoir lu toutes les questions
    Au plaisir de vous lire.


    P.S. Toutes autres idées d'optimisations sont les bienvenues...

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut Re: Optimisation de scripts Php/MySQL (2)
    Salut et bienvenue sur le forum de developpez.com


    Tout d'abord, si tu pouvais encoder tes texte en ISO, et non en UTF-8, ça aiderait la compréhension, merci d'Avance

    Ensuite :
    Citation Envoyé par copy
    (*) J'utilise sur une page plusieurs requêtes sql je me demandais si la fonction suivante pouvait vraiment se ressentir sur la vitesse d'éxecution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_free_result($result);
    mysql_free_result n'intervient pas au niveau de a vitesse d'exécution, mais de la mémoire utilisiée

    Citation Envoyé par copy
    (*) Comme je disais le site est orienté téléphone mobile. Cela oblige de traiter les jeux de caractères en iso et en utf-8. Pour le moment je réalise toute une série d'instruction via ereg_replace() pour transformer le code en caractères spécial html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     par exemple:
     é --> é
    Cependant j'ai lu que les ereg_replace prennent pas mal de temps à exécuter. Malgré mais recherches je ne suis jamais abouti à quelque chose de mieux que ca.. Existe t'il une autre solution?
    Il existe les fonctions htmlentities et htmlspecialchars qui font ce travail en natif : http://fr.php.net/htmlentities et http://fr.php.net/htmlspecialchars

    Citation Envoyé par copy
    (*) J'ai programmé un système de messagerie privée. Celui ci dans une table de se type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id  int  primary key auto_increment,
    id_emmetteur int,
    id_recepteur int,
    message text,
    vu int
    Le champ id_emmetteur reprends l'identifant se référant à l'emmeteur du message..
    vu est un indicateur pour savoir si le message est lu ou pas.. (O ou 1)

    Chaque chargement de page je test pour savoir si l'utilisateur possède un mesage privé..

    ce test est du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id FROM messages WHERE id_recepteur = $monid AND vu = 0;
    Les utilisateurs parlant beaucoup la table grandit à une vitesse grand V. Je trouve le test barbare de devoir lire toutes la table. Y a t'il un autre moyen de procéder? Est - ce que pour vous cela semble être grossier mais convenir tout de même?
    Comme optimisation de la requête, je ne vois pas trop quoi te proposer, par contre, mettre un index sur vu te permettra peut-être d'accélerrer sensiblement la vitesse d'exécution de la requête si celle-ci est franchement lente...

    Voilà, J'espère que je n'ai pas dis trop de bêtises, et que ceci pourra t'aider !
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour Swog,

    Merci pour ton accueil sur le forum.. Désolé pour le format de codage, je me connecte via mon gsm (connection GPRS).. arf..
    Ca fait plaisir de voir que même phpbb n'a pas pensé aux différents codage.. lol


    copy a �crit:
    (*) J'utilise sur une page plusieurs requêtes sql je me demandais si la fonction suivante pouvait vraiment se ressentir sur la vitesse d'éxecution.

    Code:
    mysql_free_result($result);

    mysql_free_result n'intervient pas au niveau de a vitesse d'ex�cution, mais de la m�moire utilisi�e
    Oui c'est vrai, je n'ai pas beaucoup réflechis.. lol.. mais est ce utile de réaliser cela? après exécution du script php le fait lui même?

    Il existe les fonctions htmlentities et htmlspecialchars qui font ce travail en natif : http://fr.php.net/htmlentities et http://fr.php.net/htmlspecialchars
    Merci, je vais encore bien y regarder, parce que je n'y étais pas arrivé lors de mes tests précédents..


    Merci pour toutes tes réponses.


    P.S. Si tu savais aussi me dire si la connection persistante est interressante tu serais au top
    A bientôt

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Pour le mysql_free_result :
    mysql_free_result() n'est à appeler que si vous avez peur d'utiliser trop de mémoire durant l'exécution de votre script.
    donc, pas de pbs tu as ta réponse

    Pour la connection persistante, je ne l'utilise pas personnellement, mais je pense que c'est comme mysql_free_result : si tu utilises mysql_free_result, c'est que tu souhaites économiser de la mémoire, donc dans ce cas, tu refermes tes connexions entre chaque pages, sinon, tu privilégie la vitesse, donc tu laisses la connexion ouverte, c'est déjà ça de gagné

    pour htmlentities et htmlspecialchars, je les utilises de manière régulière et je n'ai jamais rencontré de problème, l'utilisation est des plus basiques :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte = htmlentities($texte);
    fais voir comment tu les utilisent si tu recontres quelques difficultées
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup, quelques jours pour que je retrouve un accès adsl et donc accès au serveur.

    Ensuite je fais mes tests et je te tiens informé en bien ou en mal.. lol..

    Si tu avais quelques références Ã* me fournir pour l'optimisation de script je suis tout acheteur..

    bonne soirée

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Pour l'optimisation, à part le topic que tu as vu, non, désolé...


    Au fait, pour le résolu, utilise plutôt le bouton en bas à gauche (je pense qu'il est accessible via GSM) il ressemble à ceci : Merci !
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  7. #7
    Candidat au Club
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Voila qui est plus simple.. lol..

    T'inquiète je ne suis pas maso, je ne viens pas avec mon gsm.. mais j'utilise mon gsm comme modem..

    Merci

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    OK
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  9. #9
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    pour le htmlentities()...

    Si tu manipules des chaînes en UTF-8, une fonction peut vraiment t'aider pour transformer tous les caractères UTF8 en & # xxx ; afin d'être affichés dans n'importe quel navigateur.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    /** 
     * takes a string of utf-8 encoded characters and converts it to a string of unicode entities 
     * each unicode entitiy has the form &#nnnnn; n={0..9} and can be displayed by utf-8 supporting 
     * browsers 
     * @param string $source Encoded using UTF-8 
     * @return string String of unicode entities 
     * @see http://www.php.net/utf8_decode 
     * @see http://www.randomchaos.com/document.php?source=php_and_unicode 
     * @author http://iubito.free.fr ;)
     */ 
    function utf8entities($str) 
    { 
     //utf8 to unicode 
     $unicode = array();    
     $values = array(); 
     $lookingFor = 1; 
     $len = strlen($str); 
     for ($i = 0; $i < $len; $i++ ) 
     { 
      $thisValue = ord($str[$i]); 
      if ($thisValue < 128) 
       $unicode[] = $thisValue; 
      else 
      { 
       if (count($values) == 0) 
        $lookingFor = ($thisValue < 224)?2:3; 
       $values[] = $thisValue; 
       if (count($values) == $lookingFor) 
       { 
        $number = ($lookingFor == 3) 
         ?(($values[0]%16)*4096) + (($values[1]%64)*64) + ($values[2]% 64) 
         :(($values[0]%32)*64) + ($values[1]%64); 
        $unicode[] = $number; 
        $values = array(); 
        $lookingFor = 1; 
       } // if 
      } // if 
     } // for 
     
     $entities = ''; 
     foreach($unicode as $value) 
      $entities .= $value<128 ? chr($value) : ('&#'.$value.';'); 
     return $entities; 
    }
    Je t'envoie un petit mp pour que tu me fasse un test à partir de ton GSM
    Membre éclairé, lol !

+ 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. [eCommerce] Un script de e-commerce en PHP/MySQL ?
    Par Anne1969 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 16/03/2006, 11h07
  3. [MySQL] [SGBD] Script PHP/MYSQL d'access FTP
    Par ChRom dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/01/2006, 01h52
  4. Réponses: 9
    Dernier message: 05/01/2006, 12h24
  5. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 01/12/2005, 16h45

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