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 :

Comment optimiser les COUNT ?


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de DavidDeTroyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 305
    Par défaut Comment optimiser les COUNT ?
    Bonjour,

    Je dois afficher 12 requetes contenant les mots COUNT et DISTINCT sur une meme page de stat mais ca me prend presque 28 secondes a l'affichage !!!

    Mes requetes pointes bien sur des champs primaire ou indexé, pourtant !

    Quand je vois le forum de DVP qui affichent je sais pas combien de requete COUNT en presque rien, je bave...

    Comment ils font ?

    Ils passent par une table tampon ? Il existe des fonctions secretes qui optimise les count ?

    J'ai essayé mysql_result_count mais ca change pas grand chose...

    Quelqu'un aurai une idée ?

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Par défaut
    Cela me paraît très étrange, es-tu bien certain de ne faire que des requêtes du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM UneTable
    les COUNT sont en général super rapides, tu ajoutes sans doute des clauses WHERE non?.

  3. #3
    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
    Es-tu sur que c'est mysql qui prend autant de temps ?
    As tu fais un ANALYZE TABLE sur toutes les tables de ta base ?
    As tu fais un EXPLAIN de tes requetes qui prennent du temps ?

  4. #4
    Membre éprouvé Avatar de DavidDeTroyes
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 305
    Par défaut
    Citation Envoyé par stephane eyskens
    Cela me paraît très étrange, es-tu bien certain de ne faire que des requêtes du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM UneTable
    les COUNT sont en général super rapides, tu ajoutes sans doute des clauses WHERE non?.
    Oui il y en as pas mal... Ca joue ?

    Citation Envoyé par Mr N.
    Es-tu sur que c'est mysql qui prend autant de temps ?
    As tu fais un ANALYZE TABLE sur toutes les tables de ta base ?
    As tu fais un EXPLAIN de tes requetes qui prennent du temps ?
    Non mais je vais regarder ca de plus pres... Je fonce sur Google.

    Merci à vous deux

  5. #5
    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
    oublie google, dev.mysql.com est suffisant

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    Je dois afficher 12 requetes contenant les mots COUNT et DISTINCT sur une meme page de stat mais ca me prend presque 28 secondes a l'affichage !!!
    En revanche les DISTINCT sont très côuteux...

  7. #7
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    fais voir le code sql de tes requetes ?
    question subsidiaire : t'as un serveur digne de ce nom niveau perfs ? pasque 28 secondes ...

Discussions similaires

  1. [AC-2003] importation de donnée excel vers access : comment optimiser les tables ?
    Par pshd22 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 31/03/2009, 18h17
  2. Réponses: 5
    Dernier message: 18/07/2008, 12h40
  3. Comment optimiser les performances de mon PC ?
    Par Celebrate dans le forum Windows XP
    Réponses: 6
    Dernier message: 16/07/2008, 22h08
  4. Comment optimiser les temps de réponse d'une requête ?
    Par renaudjuif dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/02/2007, 14h12
  5. [XSLT] Comment optimiser les traitements XML/XSL ?
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/03/2006, 16h39

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