Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden Sie am besten *, wenn Sie viele Felder in MySQL aufrufen?

Hinweis: Das Benennen aller Felder ist natürlich eine bewährte Methode, aber in diesem Beitrag werde ich nur Leistungsvorteile diskutieren, keine Design- oder Wartungsvorteile.

Der * Syntax kann aus folgenden Gründen langsamer sein:

  • Nicht alle Felder werden indiziert und die Abfrage verwendet einen vollständigen Tabellenscan. Wahrscheinlich nicht Ihr Fall:Es ist kaum möglich, dass alle Felder, die Sie zurückgeben, mit einem einzigen Index indiziert sind.

  • Das Zurückgeben nachgestellter Felder aus einer Tabelle, die Spalten variabler Länge enthält, kann zu einem leichten Suchaufwand führen:um 20th zurückzugeben Feld, vorheriges 19 sollten geprüft und Offsets berechnet werden.

  • Es müssen nur mehr Daten zurückgegeben (über die Verbindung geleitet) werden.

Da Sie fast alle Felder benötigen, ist der letzte Grund wahrscheinlich der wichtigste. Sprich, der description TEXT Feld darf nur 1 sein von 50 Felder, die auf der Seite nicht verwendet werden, aber 10 belegen können mal so viel Platz wie alle anderen Felder zusammen.

In diesem Fall ist es natürlich besser, alle Felder zu benennen und die langen Felder wegzulassen, die Sie nicht benötigen.