2010-12-24 4 views
3

Sagen wir, ich habe eine Tabelle tablex genannt:mysql Auswählen von Zeilen Optimierung Stern- oder Namen

ID,col1,col2,col3,col4,col5,col6. 

Welche der folgenden Codes ist schneller, da col4 bei der Verarbeitung nicht benötigt wird?

Code 1-SELECT * FROM tablex

Code 2 - SELECT ID,col1,col2,col3,col5,col6 FROM tablex

(Anmerkung col4 wird in Code fehlt 2, da es nicht erforderlich, alle Spalte Text von 80 Varchars sind, ID ist nur int, Autoinkrement)

Danke!

Antwort

1

Dies ist etwas, was Sie Benchmark haben werden. Bei den meisten kleinen Abfragen werden Sie höchstwahrscheinlich keinen Unterschied bemerken. Wenn col4 ein BLOB ist, das Dateien im Gigabyte-Format enthält, ist es wahrscheinlich die spezifische Spalte 1 (nicht das Format *) schneller, da dieses "nutzlose" Gigabyte nicht jedes Mal abgerufen werden muss.

+0

sollte es ein Abzeichen dafür geben: D – aletzo

+0

@aletzo: Ich hatte das auch einmal, aber es wurde kürzlich upvoted, so ist es jetzt null :) – Quassnoi

1

Explizite Auflistung der Attribute wird marginal (oder nicht marginal) schneller sein, da nicht abgerufen und über die Verbindung übergeben werden muss.

Wenn Sie den Abfragecache verwenden, sind die zwischengespeicherten Resultsets weniger groß und daher können mehr Resultsets zwischengespeichert werden.

Im Allgemeinen sollten Sie Ihre Spalten immer explizit auflisten (nicht nur aus Leistungsgründen, sondern auch für sie).

-2

Code 2 ist schneller, aber Sie sollten einige Tests laufen selbst, es zu überprüfen

Verwandte Themen