Hallo!
Nun, die Abfrage alleine bringt ja nicht viel..... die Daten müssen ja auch irgendwie weiter verarbeitet werden.
Nehmen wir mal als Beispiel PHP:
mysql_fetch_assoc() --> $row['Spaltenname']
mysql_fetch_object() --> $row->Spaltenname
mysql_fetch_array() --> $row['Spaltenname'] oder $row[Spaltennummer]
Solange also nicht mit mysql_fetch_array() und der Spaltennummer gearbeitet wird, muss der gesammte Code bei einer Änderung der Tabellenstruktur überarbeitet werden.
Egal ob beim SELECT nun mit dem Sternchen oder explizit mit den Spaltennamen abgefragt wird.
Wenn mit mysql_fetch_array() und der Spaltennummer gearbeitet wird, dann muss der gesammte Code nur dann überarbeitet werden wenn sich die Spaltenreihenfolge und/oder Spaltenanzahl ändert.
Jedoch können die Spaltennamen, sofern der eigentliche Zweck erhalten bleibt, beliebig umbenannt werden.
Was die Änderung der Tabellenstruktur betrifft, macht es also kaum einen Unterschied ob man nun mit Sternchen oder den Spaltennamen arbeitet.
Der Aufwand ist mehr oder weniger der gleiche.
Um zum erstellen der Tabelle nicht erstmal den ganzen Code studieren zu müssen, ist es anzuraten einen SQL-Dump mitzuliefern.
Ich habe es mir angewöhnt je nach grösse des Codes den Datenbanknamen, den Tabellennamen sowie die Zugangsdaten zur Datenbank am anfang des Scripts bzw. in einer Konfigurationsdatei als Variablen anzulegen.
Das ist meiner Meinung nach genug Flexibilität.
Was die Performance betrifft, spielen hier noch andere Faktoren eine Rolle.
Beispiel:
Es gibt die Spalten ID, Benutzername, Passwort und e-Mail Adresse.
Ob hier beim Login nun nur die ersten 3 Spalten oder alle 4 abgefragt werden, dürfte aufgrund der geringen Datenmenge wohl eher nur eine untergeordnete Rolle spielen.
Wenn in den Spalten aber z.B. Bilder

und viel Text gespeichert ist, wäre es anzuraten bei der Abfrage explizit die Spaltennamen anzugeben, von denen man das Ergebnis braucht.
Hinzu kommen ausserdem noch Faktoren wie z.B. die Leistung des Servers und die Anzahl gleichzeitig stattfindender Zugriffe.
Was den Traffic betrifft:
Unnötiger Traffic ensteht nur wenn es ein externer Datenbankserver ist.
Beispiel:
Ein Webserver schickt seine Abfrage an den externen Datenbankserver (dieser Traffic entsteht so oder so).
Wird die Abfrage nun mit einem Sternchen gemacht, werden weniger Daten übertragen als wenn man den/die Spaltennamen angibt (ein Sternchen spart hier also Traffic

).
Der Datenbankserver schickt nun das Abfrageergebnis zurück an den Webserver (erst hier ensteht unnötiger Traffic, wenn sich in dem Abfrageergebnis Daten befinden die eigentlich nicht benötigt werden).
Bei "extern" gibt es nun 2 Möglichkeiten:
1. MySQL läuft zwar auf einem andern Server, aber innerhalb des gleichen Netzwerks.
Hier dürfte kein Traffic berechnet werden.
Und wenn doch, dann gehört der Betreiber an die Wand gestellt.

2. MySQL läuft auf einem anderen Server und in einem anderen Netzwerk (irgendwo in den Weiten des WWW

).
Hier kann (zu recht) Traffic berechnet werden, sofern man nicht einen Festpreis hat oder der üblicherweise vorhandene Freitraffic überschritten ist.
.....so, ich höre erstmal auf.
Gruss Dr Dau