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

SQL Procédural MySQL Discussion :

[Performance] COUNT ou redondance calculée ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut [Performance] COUNT ou redondance calculée ?
    Bonjour,

    J'aimerai connaitre votre avis sur la rapidité de ces deux cas de figures. DOnc pour débuter : j'ai deux tables. Une table membres et une table depots avec l'id du membre qui a déposé. Mon but est de compter rapidement le nombre de depots effectués par ce membre.

    Mes deux solutions :
    - Je rajoute une colonne "nbtransaction" dans la table membres et à chaque dépoit j'incrémente à +1 et quand je veux connaitre le nomrbe de depots je récupère la valeur du champs.
    - Je compte simplement le nombre de depots avec l'id du membre.

    J'ai schématisé pour que ce soit compréhensible mais imaginez le même schéma avec des millions d'enregistrement avec des centaines de dépots pour chaque membre.

    Merci à vous.

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    table depots avec l'id du membre
    L'id est en Foreign Key ?

  3. #3
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut,

    C'est tout le problème de la redondance calculée.

    Etant donné que le COUNT n'implique a priori pas de calculs trop complexes je privilégierais quand même cette méthode.
    D'autant que la deuxième solution peut engendrer des inexactitudes (si l'incrémentation du nombre de transactions échoue par exemple).

  4. #4
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Citation Envoyé par qi130
    L'id est en Foreign Key ?
    Oui elle est en Foreign key sur la table des dépots. Il y a donc un lien, ca modifie la vitesse de traitement?

  5. #5
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Ca peut !

    Je pense (sauf si des spécialistes affirment le contraire) que l'index sur id_membre pourrait être utilisé, ce qui me ferait privilégier le count.

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

Discussions similaires

  1. Requête sql count(*) et divers calcul
    Par Smoki28 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/07/2014, 13h40
  2. comment calculer Max(count(*))
    Par w@ssim dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/11/2006, 09h27
  3. Le calcul des stats dégrade les performances
    Par jo007 dans le forum Oracle
    Réponses: 18
    Dernier message: 15/02/2005, 09h42
  4. COUNT + Calcul de DATE
    Par cassi2 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/10/2004, 16h35
  5. [Performance] RecordCount ou select Count(champ) ?
    Par shwin dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/09/2004, 17h37

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