Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SQL] Accéder à un ou tous les champs

point de vue vitesse

Sujet résolu
    7 juin 2010 à 9:12:51

    Bonjour,

    Pour éviter de multiplier les requêtes presque identiques où je ne sélection ou modifie qu'un champ de ma table, j'ai créé des fonctions où je récupère tous les champs où les modifies tous.
    Je voulais savoir si cela avait un coup qui se faisait sentir en terme de performance et qu'est ce qui était conseillé de faire (pour faire ça simplement et proprement).

    entre
    SELECT nom
    FROM user
    WHERE id = x
    

    et
    SELECT id, nom, prenom, email, sexe, date_naissance, date_inscription,...
    FROM user
    WHERE id = x
    


    Alors que dans les deux cas seul le nom m'intéresse...

    Pour la mise à jour, je dois chaque fois repasser l'ensemble des attributs dans ma requête ce qui l’alourdit sans doute un peu...

    Parce que bon devoir faire une requête spécifique pour chaque champ, je me dis que c'est ma page php qui va s’alourdir :p

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2010 à 9:23:47

      Bonjour.

      Forcément tu utilise toujours plus de ressource à récupérer tous les champs d'une table plutôt que d'en retourner qu'un seul. Cela dit au passage au lieu de spécifier tous tes champs un par un dans la requête, si tu veux tous récupérer tu peux faire avec * :) .

      Si tu ne doit donc ne manipuler qu'un seul champs préfère donc une requête avec un seul champs.

      Pour ce qui est de l'alourdissement de ta page php si tu dois faire une requête par champs, pourquoi ne pas faire une fonction?

      De ce genre la:
      <?php
      function envoyerRequete($table, $colonne, $id){
         $req = "SELECT ".$colonne." FROM ".$table." WHERE id=."$id;
         return mysql_query($req);
      }
      ?>
      



      En espérant t'avoir aidé.
      • Partager sur Facebook
      • Partager sur Twitter
        7 juin 2010 à 9:32:35

        je n'avais pas songé à faire une fonction où l'on spécifie la colonne, merci :)

        pour le * en général j'essaye d'éviter parce que je trouve ça moins facile de savoir le nom des champs que je retourne (sauf évidement dans le cas d'un count(*) où ça ne m’intéresse pas des masses)

        (edit : tient il a disparu le bouton "cette réponse m'a aidé" ? et apparemment le bouton résolu ne fonctionne pas)
        • Partager sur Facebook
        • Partager sur Twitter
          7 juin 2010 à 9:45:28

          C'est un nouveau forum, ce n'est peut être pas encore en place.

          Faudrait peut être prévenir le staff.
          • Partager sur Facebook
          • Partager sur Twitter
            7 juin 2010 à 19:42:44

            Salut,

            Merci d'éditer le titre du sujet en veillant à respecter ce qui est dit dans le topic concernant les règles de ce forum.
            Voir http://www.siteduzero.com/forum-83-527 [...] html#r5049630

            En ce qui concerne le problème de bouton résolu et indiquer qu'une réponse a aidé, tu peux reporter ça sur le bug tracker. Ce sera rapidement corrigé.
            • Partager sur Facebook
            • Partager sur Twitter
            Pwaite.net > Transfert de crédit téléphonique et monétisation de site web                                                                                        « I am awesome »
              7 juin 2010 à 19:46:28

              L'étoile dans une récupération de colonnes est synonyme de perte de performances. Par contre lors d'un COUNT, SUM, etc... l'étoile dans ces fonctions est plus rapide.
              • Partager sur Facebook
              • Partager sur Twitter
                7 juin 2010 à 20:04:10

                @herudo : c'est bon quelqu'un d'autre l'avait déjà fait

                @zingwai : ben quoi il me semblait mon titre. Je n'ai pas mis entre crochets la sgbd parce que ce n'était pas spécifique à un, une question sur les performance du SQL en général

                @devil : merci pour cette précision
                • Partager sur Facebook
                • Partager sur Twitter
                  8 juin 2010 à 11:29:29

                  martvefun, dans ce cas tu peux juste rajouter [SQL] dans le titre afin de garder une bonne lisibilité. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Pwaite.net > Transfert de crédit téléphonique et monétisation de site web                                                                                        « I am awesome »

                  [SQL] Accéder à un ou tous les champs

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown