Sven Rautenberg: VarChar oder Char

Beitrag lesen

Moin!

dann weiter zu optimieren und den Vorteil geringerer Datenmenge durch Varchar auf alle Spalten anzuwenden.

Sorry, aber diesen Nebensatz versteh ich jetzt irgendwie gar nicht mehr. Wie erhältst du durch die Verwendung von Varchar als Datentyp eine geringere Datenmenge, wenn du dieselben Inhalte speicherst?

Die Frage ist: Was sind "dieselben" Inhalte? Und wie stehen die in Beziehung zur definierten Spalte.

Ein 32-Chars-MD5 wird natürlich besser in ein CHAR(32) gespeichert, als in ein VARCHAR(32), und in jedem Fall die gleiche Zahl an Zeichen einnehmen.

Aber Tabellen, die ausschließlich CHAR haben, behalten diesen Typ ja auch.

Wenn aber beispielsweise Namen (Personen-, Straßen-, Orts-, Produkt- etc.) gespeichert werden, gilt diese Aussage nicht.

Es wäre daher sinnlos, eine Namensspalte als VARCHAR, die andere als CHAR zu speichern, wenn die Chance besteht, dass auch in der CHAR-Spalte nicht ausschließlich Strings der maximalen Länge gespeichert werden. Der Performancevorteil ist durch die eine VARCHAR-Spalte ohnehin dahin.

Natürlich unter der Voraussetzung das die Char(n) Spalten auch entsprechend mit n Zeichen gefüllt waren. Sonst ist klar.

Das ist der Punkt. :)

Die Optimierung dürfte darauf hinauslaufen, wenigstens die Chance zu haben, Bytes einzusparen, wenn die Daten mal nicht die maximale Länge einnehmen.

Aber egal, ich sehe es einfach mal als proprietäres MySQL Feature an ;)

Das ist definitiv so.

- Sven Rautenberg

--
My sssignature, my preciousssss!