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 :

Performance et nombre de requête


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Par défaut Performance et nombre de requête
    Bonjours.

    Je me posais une simple question, peut être un peu conne mais je ne peux pas vraiment pour le moment faire de test de performance. La question étant assez basique je pense que vous arriverez à me répondre rapidement.

    Le code est du PHP. Voici actuellement la portion de code qui est ambigüe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
                $sql = 'SELECT pho_id, pho_idname, pho_name, pho_type, pho_width, pho_height, pho_size, pho_date
                        FROM photo
                        WHERE pho_id >= '.$id.'
                        ORDER BY pho_id
                        LIMIT 3';
                $req = mysql_query($sql);
                if(mysql_errno()) {
                    $this->error[] = "Erreur SQL ! ".mysql_error(); //Ajout d'un message dans la pile des erreurs
                }
     
                $nbResultat = mysql_num_rows($req);
                if($nbResultat == 3) {
                    /* On a bien 3 résultats au dessus et donc on peut compléter correctement les attributs et créer les objets */
                    for($i=0; $i < $nbResultat; $i++) {
                        $data = mysql_fetch_array($req);
                        if($i == 0) {
                            $this->medium = new MediumImg($data['pho_id'], $data['pho_idname'], $data['pho_name'], $data['pho_type'], $data['pho_width'], $data['pho_height'], $data['pho_size'], $data['pho_date']);
                            $this->mini = new MiniImg($data['pho_id'], $data['pho_idname'], $data['pho_type']);
                        }
                        elseif($i == 1) {
                            $this->miniNext = new MiniImg($data['pho_id'], $data['pho_idname'], $data['pho_type']);
                        }
                        elseif($i == 2) {
                            $this->miniNextOfNext = new MiniImg($data['pho_id'], $data['pho_idname'], $data['pho_type']);
                        }
                    }
                }
    Comme vous pouvez le constater j'effectue une grosse requête où je récupère beaucoup d'information pour 3 tuples alors que je n'ai besoin de beaucoup d'information que pour 1 tuples, le premier.

    Ma question est donc, ma solution est-elle la bonne ou est-il préférable que j'effectue une requête avec 3 résultats avec les informations minimales plus une autre requêtes pour récupérer les informations supplémentaires. Je ne récupèrerais dans ce dernier cas aucune informations inutiles.


    J'aurais bien besoin de votre avis.
    Merci.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Personnellement, j'opterais pour une seule requête, car elle n'est pas franchement compliquée (pas de sous-requête par exemple), et donc doit tourner rapidement.
    Si tu fais 2 requêtes, il faut prendre en compte non seulement le temps d'exécution des requêtes, mais aussi les temps d'accès au serveur, les temps de transfert... Bref, ça a toutes les chances d'être plus long, je crois...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Par défaut
    Je penchais aussi vers ce raisonnement. Je voulais avoir confirmation.

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

Discussions similaires

  1. connexion simultanées et nombre de requêtes
    Par bimus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/01/2007, 16h19
  2. Réponses: 4
    Dernier message: 14/11/2006, 19h03
  3. Nombre de requêtes par table
    Par nicoaix dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/07/2006, 11h50
  4. Réponses: 3
    Dernier message: 05/03/2006, 23h38
  5. IB et Nombre de requêtes par secondes
    Par lio33 dans le forum Débuter
    Réponses: 5
    Dernier message: 15/09/2005, 16h52

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