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 :

une page un peu lourde


Sujet :

PHP & Base de données

  1. #21
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    autant pour moi, j'avais lu le poste de travers.


    Citation Envoyé par Mr N.
    La requête en elle-meme sous mysql en ligne de commande te prends combien de temps ?
    ....
    Citation Envoyé par nourami
    elle me preds 25 s
    Autrement c'est une peu bizarre que sa prenne plusieurs minutes si avec la ligne de commande mysql sa te prend 25 s.

    Sa met autant de temps avec phpMyAdmin ?

  2. #22
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    je n'utilise pas phpMyAdmin, et ce dernier execute la requete avec limit donc le temp de reponse affiché est celle du records affichés seulement et non pas de la totalité.
    j'ai utilisé MySqlAdministrator pour calculer ce temp.

  3. #23
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Tu as essayer de mettre une page transitoire avec un form en auto submit ?

  4. #24
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    ca sert a quoi cette page transitoire pour mon probleme?

  5. #25
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Simple curiosité : ton IN() peut comporter combien de valeurs au maximum ? C'est peut-être de là que vient le temps d'exécution.

    Sinon, tu peux probablement sous-traiter la requête à un script que tu include() : il me semble que, de cette manière, le temps d'exécution de l'include n'est pas comptabilisé dans le temps d'exécution du script principal, ce qui te laisse 30 secondes de plus pour faire tes traitements.

    Remarque, le temps dont a besoin MySQL pour faire sa requête ne devrait pas influer sur les 30 secondes du script in the first place...

  6. #26
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    le IN peut avoir au max 6 valeur mais le probleme n'est pas la
    parceque avec la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MaTable WHERE  ch1=2 AND ch3=2
    ma page s'execute normale et me rend 300 records et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM MaTable WHERE  ch1=1 AND ch3=2
    qui me rend 130000 records ma page ne s'execute pas normale.

  7. #27
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Je vais bientôt sécher, en ce cas...

    Deux dernières suggestions :
    • Si tu ne SELECT pas * mais des champs précis, ça améliore un peu, à tout hasard ?
    • Aurais-tu moyen de mettre en place un système de redondance et/ou de cache ? Ok, ça va augmenter la taille de ta base mais cela permettrait certainement d'améliorer les perfs.

  8. #28
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Par défaut
    Je crois qu'il y'a une petite incompréhension :

    - La requête fait 25 seconde
    - La page met des minutes à s'afficher

    Donc pour l'instant vous êtes sur la requête on est ok, mais à mon avis les plusieurs minutes c'est le navigateur qui met du temps à prendre toutes les lignes, car à mon avis il demande l'affichage de ces lignes.

    Avec 40 K lignes on peut patienter déja plusieurs dizaines de secondes sur une requête qui prend même pas une seconde.

    De ce coté là, y'a rien à faire, si ce n'est optimiser le code de la page, et répartir sur plusieurs pages (mais apparement pas possible, contrainte ?)

  9. #29
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    C'étaut pour sa que je proposais une page transitoire avec un form en auto submit. car ainsi la page est blanche pdt que le serveur process les lignes.

  10. #30
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Si tu veux réduire l'affichage, tu peux utiliser :
    • la compression : regarde du côté de ob_start()
    • la séparation par pages : la clause LIMIT de MySQL est prévue pour ça, avec un paramètre dans l'url tu t'en sortiras facilement
    • réduire la quantité de HTML produit : <div> au lieu de <table> par exemple


    Le navigateur ne "demande" pas l'affichage des lignes. Il envoie une URL et demande une réponse mais il ne sait pas à l'avance ce qu'il y aura dedans (c'est d'ailleurs pour cette raison qu'il la demande). Seul le serveur sait ce que contient la page, il envoie ce qu'il veut au navigateur. Si tu souhaites réduire la taille de la page produite, c'est du côté script (PHP, j'imagine) et rien n'est envoyé implicitement : tu contrôles absolument tout ce qui est envoyé au navigateur.

  11. #31
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    merci bien pour ces rem.
    ma requete est lourde je n'ai pas le choix et ce que je veux comment faire pour que le navigateur m'indique tjs l'avencement du traitement

  12. #32
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par nourami
    ma requete est lourde je n'ai pas le choix et ce que je veux comment faire pour que le navigateur m'indique tjs l'avencement du traitement
    Je vote pour echo + flush + javascript

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 47
    Par défaut
    De toutes façons, les SELECT * sont à éviter. Il vaut mieux nommer chaque champ nominativement.

    Ensuite, si tu fais juste ta requete ûis que tu n'affiche QUE le nombre de résultats, ça prend combien de temps?

  14. #34
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Citation Envoyé par Calak
    Ensuite, si tu fais juste ta requete ûis que tu n'affiche QUE le nombre de résultats, ça prend combien de temps?
    A priori, dans les 25 secondes je pense, d'après ce qui a été dit jusqu'ici.

  15. #35
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    peut etre que tu peut essaye de traiter ta page avec tidy pour l'alleger un peut

  16. #36
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    avant de passer a utiliser tidy, j'ai dit que meme ma page n'affiche qu'une ligne par exemple , quand je click sur submit et apres 5 ou 6 second je n'aurai aucun signe que ma page est en cour de traitement et apres 25 s ou un peu plus j'aurai ma page resultat

  17. #37
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    As-tu pu regarder du côté des diverses manières de mettre en cache ?
    Où en es-tu ?

  18. #38
    Membre chevronné Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Par défaut
    oui , ma base se trouve ds un serveur optimisé (hard et soft) il donne des meilleurs resultat

Discussions similaires

  1. Récupérer une page Internet "lourde"
    Par Richard_Rahl dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2007, 22h24
  2. Une mise page un peu particulière
    Par krapoulos2006 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/12/2006, 15h45
  3. Réponses: 1
    Dernier message: 15/08/2006, 01h39
  4. [FLASH 8] Insérer une vidéo swf un peu lourde
    Par php_de_travers dans le forum Flash
    Réponses: 10
    Dernier message: 24/06/2006, 01h39
  5. [XHTML] Une mise en page un peu complexe
    Par psychoBob dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 27/05/2006, 18h09

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