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 :

Page php devient tres lente a cause du grand nombre de requete sur cette page


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Page php devient tres lente a cause du grand nombre de requete sur cette page
    Alors, j'ai une page php avec jquery et derrière une base de données mysql , et sur cette page j'ai plusieurs requetes mysql (des données sur la journée en cours , le jour précédent , la semaine en cours , semaine précédente ... etc ) le problème est que lorsque Je fais une requête sur une grande période , ma page devient très lente et des fois ne cesse de tourner en boucle par exemple quand je veux faire une requête sur un mois . J'ai besoin que quelqu'un m'expliquer comment je peux alléger la page de code de mon sachant que j'ai 24 requêtes sur ma page . et comment je peux rendre mon code plus rapide .

    je vais vous présenter un exemple de requête que j'ai sur ma page : requête pour chercher les données du mois précédent pour les personnes qui ont un statut = 'pro'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // CA previous month for PRO    
    $reqMoisPPro = $mysqli->query("SELECT sum(total) as sum FROM dashboard.data where statut='pro' and month(date)=month('".$maDate."')-1 and year(date)= '".$maDate."' and etat NOT IN ('EXPD_ANNUL_SANS_CREATION_SIP','EXPD_ANNUL_SIP')")->fetch_array();
    $ecMoisPPro= $reqMoisPPro['sum'];
    et comme je vous ai dis j'ai 24 requêtes comme ca ce qui rend ma page supere lente.

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Plusieurs pistes à explorer par niveau d'importance :

    - Indexer correctement tes tables. Si tu traites beaucoup de donnée et que tes tables ne sont pas indéxées , tu vas avoir des problèmes de performances.
    - Eviter autant que possible les requêtes dans des boucles. On peut généralement se débrouiller pour extraire les données en une seule requêtes.
    - Limiter la quantité de données extraite de la bdd en une fois. Si ta requêtes retourne 10k résultats , a va être long à transférer et à traiter. Il est alors sans doute plus judicieux de ne retourner que les 100 premier (par exemple) et de charger la suite au fur et à mesure que tu en as besoin.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Dans le cas d'un problème de performances, il faut bien identifier où est le problème : vérifier si ce sont bien les requêtes qui posent problème, si oui quelle(s) requête(s). Tu peux également vérifier que tu n'es pas en train d'accumuler des données qui ne te servent à rien.

    Ensuite, si ce sont bien les requêtes qui posent problème, essayer d'optimiser les requêtes proprement dites (éventuellement au niveau de la base, par exemple en ajoutant des index)

    Après si tu veux qu'on t'aide, il nous falloir le code.

Discussions similaires

  1. Procedure Stockée devient tres lente
    Par messi1987 dans le forum Développement
    Réponses: 3
    Dernier message: 19/06/2015, 14h14
  2. wamp server devient tres lent d'un seul coup
    Par Xeuch dans le forum Langage
    Réponses: 17
    Dernier message: 07/05/2013, 17h15
  3. Réponses: 3
    Dernier message: 27/06/2012, 18h27
  4. [AJAX] requete sur une page php
    Par xokami35x dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 20/11/2008, 20h35
  5. Afficher un calendrier sur une page php
    Par griese dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/06/2006, 09h53

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