Select * FROM performance?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Select * FROM performance?

    Hallo Leute,

    hab da mal ne frage, ist es eigentlich besser statt Select * -> Select spalte1, spalte2 usw. zu machen, halt nur die Spalten die benötigt werden?
    Oder macht es von der Abfragegeschwindigkeit her nix aus?

    in den Shop den ich hier vorliegen habe sind eigentlich alle abfragen mit Select * versehen:

    PHP-Code:
    $abfrage2 "SELECT * FROM " $artikel " where id = " $id ""
    PS: weiss nicht ob die frage im SQl forum besser aufgehoben wäre?
    mfg
    marc75

    <Platz für anderes>

  • #2
    Re: Select * FROM performance?

    Original geschrieben von marc75
    PS: weiss nicht ob die frage im SQl forum besser aufgehoben wäre?
    wäre sie *verschieb*
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      Hi Marc

      1. ja die Frage Wäre besser im Sql Forum aufgehoben

      2. das kommt auf die Datenmenge an,denn es macht mit sicherheit einen Unterschied ob 2-3 Werte nur ausgelesen werden oder 1000. Die Performence lässt sich aber auch mit PHPmyadmin oder mysqladmin testen

      Kommentar


      • #4
        ich denkemal, wenn du SELECT * machst muss herr mysql noch nachschauen was es für spalten in der tabelle gibt und wie sie heißen, außerdem könnte es unschön werden wenn du deine tabelle änderst (ganz böse: riesig große blob-felder einbauen)

        und lesbarer isses imo wenn ich die spaltennamen explizit angebe
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          ok danke,
          werd mich da mal ransetzen und das ändern (damit hab ich die nächsten zwei, drei Tage erstmal keine langeweile).

          und gleich noch ein, zwei fragen.

          außerdem könnte es unschön werden wenn du deine tabelle änderst (ganz böse: riesig große blob-felder einbauen)
          ähh, was meinste mit blob-felder? varchar (500) und so?

          habe gestern in einer tabelle eine Spalte hinzugefügt wo zahlen abgespeichert werden (für die reihenfolge der kategorien), hab dort Typ: int(3) / Standart 0 genommen, müsste so doch eigentlich ok sein.


          @scriptingmike
          und zu phpmyadmin:
          wie und wo kann ich dort den die performance testen?
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            Original geschrieben von marc75
            ähh, was meinste mit blob-felder? varchar (500) und so?
            nö *g*

            BLOB == BLOBB and VARCHAR(500) == VARCHAR(500) and BLOB != VARCHAR(500)

            http://www.mysql.com/doc/de/BLOB.html
            http://www.mysql.com/doc/de/Storage_requirements.html
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Warum soll ich nicht SELECT * schreiben?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Je nachdem was du aus den Tabellen brauchst ist SELECT * FROM sicherlich sinnvoll.

                Aber eben auch nur wenn du fast alles oder gar alles aus einer Tabelle auslesen möchtest.

                Willst du beispielsweise aus einer Usertabelle, in der Unmengen an Informationen stehen, nur den Vor und Nachnamen haben, ist es __nicht__ sinnvoll, * zu selektieren.

                Dort ist es angebrachter, nur die Felder auslesen zu lassen, die man wirklich braucht, da dadurch eben nicht alle Felder ausgelesen werden, was bei vielbesuchten Webseiten recht performancesteigernd ist.

                Kommentar


                • #9
                  und was man auf gar keinen Fall unterschätzen sollte sind die genannten großen Felder. BLOB sind allgemein unbeliebt, aber halt auch andere felder könnten hinzukommen (mehrere kleine).

                  Kommentar

                  Lädt...
                  X