Performance

Hallo,

für Texte mit weniger mit bis zu 255 Zeichen sollte man auf den Datentyp VARCHAR zurück greifen. CHAR eignet sich nur für Zeichenketten immer gleicher und zuvor bekannter Länge (zum Beispiel Länder ISO Codes).

Um längere Texte abzuspeichern, sollte man auf TEXT (2^16 Zeichen), MEDIUMTEXT (2^24 Zeichen) oder LONGTEXT (2^32 Zeichen) zurückgreifen, da diese Typen wie bereits angesprochen entgegen den BLOB Datentypen die Volltextsuche unterstützen.

Der "Nachteil" der TEXT/BLOB Typen:
" Beachten Sie, dass intern jeder BLOB- oder TEXT-Wert durch ein separat zugewiesenes Objekt dargestellt wird. Das steht im Gegensatz zu allen anderen Spaltentypen, für die Speicherplatz einmal pro Spalte zugewiesen wird, wenn die Tabelle geöffnet wird."
Quelle: http://dev.mysql.com/doc/mysql/de/blob.html (ganz unten)

Aus diesem Grund ist VARCHAR bei Zeichenketten bis einer Länge von 255 Zeichen besser geeignet als TINYTEXT. Darüber hinaus bleibt einem aber keine andere Wahl :-).

mfg Bloddy
 
@XChris:
Danke fuer die Infos, Deine Vorschlaege werde ich beherzigen und nach Moeglichkeit umsetzen.
Ist es ohne weiteres Moeglich einen LONGBLOB (Binary) in ein LONGTEXT zu konvertieren oder muss ich mir dafuer ein Script schreiben?
Letzteres waere wohl nicht das Problem, aber es waere schon irgendwo angenehmer MySQL einfach mitzuteilen, dass das jetzt ein LONGTEXT ist und gut.
 
Zurück