Hello,
also, varchar(m) ermöglicht es meines wissens ja, einen String mit maximal der Länge m Zeichen zu erstellen. Tinytext hingegen einen string mit max. der Länge 256 Zeichen.
Jetzt habe ich gelesen, dass varchar die nichgenutzten Zeichen auch speichern würde, d.h. in einem varchar(10)-feld, in dem "abcdef" steht, wird trotzdem der speicherplatz für 10 Zeichen gespeichert, also 5 Zeichen Speicherplatz werden "vernichtet".
Wenn das richtig ist, dann frag ich mal ganz blöd: Wozu gibt's noch varchar-Felder, wenn sie nur Speicherplatzverschwendung sind?
PS: Bin gerade dabei, bei all meinen datenbanken alle varchar-felder in tinytext umzuwandeln...
Harzliche Grüße aus http://www.annerschbarrich.de
Das solltest Du Dir nochmal überlegen. TiniText lässt sich inzwischen zwar auch indizieren, ist aber wesentlich langsamer, als Char und VarChar.
Ich habe das mal ausgetestet und die Unterschiede des nicht indizierten Zugriffs waren erheblich. Das liegt daran, dass die *Text-Typen uber eine zusätzliche Referenz gespeichert werden und nicht direkt im Stream des Datensatzes. Ein "order by" auf ein Textfeld dauert mindestens dreimal so lange wie ein "order by" auf ein VarChar.
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau