Hi,
das hat verschiedene Gründe (meiner naiven Ansicht nach...):
- Die Datenbank puffert unter Umständen aus Transaktionsgründen das Ergebnis deiner Abfrage, d.h. sie liest beim Zugriff auf die Datensätze nicht unbedingt direkt aus den Tabellen aus sondern aus einem Zwischenspeicher den sie sich erstellt hat. Wenn du ein SELECT * machst lädst du den gesamten Inhalt der Tabelle da rein, obwohl du ggf. nur zwei Spalten brauchst. Bei einer Tabelle mit 100 Feldern ist das schon ein gewaltiger Unterschied im Speicherbedarf.
- Viel interessanter ist noch die Veränderung der Tabelle. SELECT * liefert dir alle Spalten in einer Reihenfolge (wenn du Glück hast so wie du sie selbst mal angelegt hast). Aber was passiert wenn jemand die Tabelle neu anlegt (mit anderer Reihenfolge) oder gar neue Spalten einfügt? Du musst alle deine Abfragen anpassen damit du auf die korrekten Spalten zugreifst (je nachdem ob du mit Spaltennamen oder Nummern arbeitest). Hättest du direkt die Spalten die du haben willst mit Namen angesprochen könnte dir das alles egal sein, die kämen immer in der richtigen Reihenfolge an...
MfG
Rouven
--
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(