209 Stimmen

Was ist schneller/bester? SELECT * oder SELECT Spalte1, Spalte2, Spalte3, usw.

Ich habe gehört, dass SELECT * beim Schreiben von SQL-Befehlen zu verwenden, da es effizienter ist, die SELECT Spalten, die Sie speziell benötigen.

Wenn ich es brauche SELECT jede Spalte in einer Tabelle, sollte ich

SELECT * FROM TABLE

o

SELECT column1, colum2, column3, etc. FROM TABLE

Spielt die Effizienz in diesem Fall wirklich eine Rolle? Ich würde denken SELECT * wäre intern optimaler, wenn Sie wirklich alle Daten benötigen, aber ich sage das, ohne wirklich etwas von Datenbanken zu verstehen.

Ich bin neugierig, was in diesem Fall die beste Praxis ist.

UPDATE: Ich sollte vielleicht präzisieren, dass die einzige Situation, in der ich wirklich wollen um eine SELECT * ist, wenn ich Daten aus einer Tabelle auswähle, von der ich weiß, dass immer alle Spalten abgerufen werden müssen, auch wenn neue Spalten hinzugefügt werden.

In Anbetracht der Reaktionen, die ich gesehen habe, scheint dies jedoch immer noch eine schlechte Idee zu sein und SELECT * sollte aus viel mehr technischen Gründen, als ich je bedacht habe, niemals verwendet werden.

0voto

Morikal Punkte 91

Für die direkte Abfrage der DB (z. B. über eine Sqlplus-Eingabeaufforderung oder ein DB-Verwaltungstool) ist select * in der Regel in Ordnung - es erspart Ihnen die Mühe, alle Spalten auszuschreiben.

Im Anwendungscode hingegen ist es am besten, die Spalten aufzuzählen. Dies hat mehrere Vorteile:

  • Der Code ist klarer
  • Sie erfahren, in welcher Reihenfolge die Ergebnisse zurückkommen (dies kann für Sie wichtig sein oder auch nicht)

-3voto

Sam Punkte 2136

Die Einschränkung der zurückgegebenen Spalten kann einen enormen Leistungsgewinn bedeuten, wenn die Datensätze das Internet durchqueren.

-3voto

user14361342 Punkte 1

Wenn wir alle Spalten benötigen, ist select * meiner Meinung nach schneller als alle Spalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X