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

Requêtes MySQL Discussion :

Bonnes pratiques ?


Sujet :

Requêtes MySQL

  1. #1
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut Bonnes pratiques ?
    Bonjour,

    Je ne connais pas grand chose en optimisation SQL, donc voici ma question :

    J'ai besoin de faire 2 requêtes sur une même table du genre :
    Et :
    Vaut-il mieux faire 2 requêtes distinctes ou faire une requête du genre :
    Dans ce dernier cas, l'information SUM sera dupliquée pour chaque ROW donc ça me parait moins bon, mais sans ça, au final je me retrouve avec un nombre allucinant de requêtes SQL par page PHP. :/

    Tous vos conseils seront les bienvenus, merci d'avance.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonsoir,

    quel est ta requête précisément ? Tu veut afficher par exemple les informations d'un utilisateur et la somme total des commande qu'il a passer depuis sont inscription ? Ou la même chose mais pour tous les utilisateurs enregistrer dans ta BDD?
    une réponse vous a permis d'avancer ?

  3. #3
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par Exia93 Voir le message
    Bonsoir,

    quel est ta requête précisément ? Tu veut afficher par exemple les informations d'un utilisateur et la somme total des commande qu'il a passer depuis sont inscription ? Ou la même chose mais pour tous les utilisateurs enregistrer dans ta BDD?
    En fait, je voudrais faire un truc du genre : SUM des achats... vérification du total, renvoyer la liste complètes des achats.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req1 = SELECT SUM ...
    if($req1->SUM){
      $req2 = SELECT * ... 
      RETURN $red2->fetchAll;
    }
    je me demandais s'il était pas possible de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req = SELECT SUM, * ...
    $data = $red->fetchAll;
    if($data->SUM){
      return $data;
    }
    Mais bon, en fait je voudrais surtout savoir de manière générale s'il existe des conventions de bonnes pratiques sur les requêtes, s'il vaut mieux faire des requêtes plutôt gourmande et compliquées ou faire plusieurs requêtes. Un petit guide de "quand faire plusieurs requêtes et quand les regrouper" serait super.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(a='eval(a)')
    recursive make it evil
    eval make it eval

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Un SGBD est fait pour traiter des données en masse et est muni d'un optimiseur de requête qui cherche la meilleure façon de l'exécuter pour accélérer le traitement.
    Il ne faut donc pas avoir peur de soumettre des grosses requêtes à un SGBD.

    Pour l'anecdote, j'ai eu il y a quelques semaines à faire une requête à partir de trois autres, ce qui a donné une requête d'une page et demi mais qui s'exécute sans problème dans Oracle.

    En fait, je voudrais faire un truc du genre : SUM des achats... vérification du total, renvoyer la liste complètes des achats.
    Ça ressemble plus à du traitement, un enchaînement d'opérations, plutôt qu'à une seule opération à effectuer par une requête.
    Qu'est-ce que "vérification du total" ? Qui le fait ? L'utilisateur ? Un programme externe à la BDD ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Bonnes pratiques de protections individuelles
    Par Community Management dans le forum Sécurité
    Réponses: 22
    Dernier message: 05/04/2013, 11h47
  2. Réponses: 7
    Dernier message: 02/11/2005, 15h30
  3. [Bonne pratique]Stratégie d'allocation
    Par jowo dans le forum C
    Réponses: 1
    Dernier message: 05/10/2005, 14h47
  4. [FOREIGN K] Valeur de champ = nom de table. Bonne pratique ?
    Par Seb des Monts dans le forum Langage SQL
    Réponses: 9
    Dernier message: 17/05/2005, 10h56

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