• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wieso funktioniert der Login nicht ?

Soweit ich im Hinterkopf habe, liegt der Unterschied zwischen varchar und char in der Art der Speicherung. Varchar verbraucht immer ein Byte mehr als char bei gleicher Stringlänge. char(32) benötigt 32 byte und varchar(32) 33 byte bei einem String mit 32 Zeichen. Da du eine konstante Länge bei md5 hast, kannst du dir das zusätzliche Byte sparen. Anders sieht es aus, wenn du keine konstante Länge hast. Schreibst du nur 'abc' in die Spalte, benötigt char trotzdem 32 Byte, varchar aber nur 4.
 
Werbung:
Ahso, deswegen hat Asterixus auch von Korinthenkackern geschrieben. Aber die Zeiten sind ja vorbei, wo man für jedes Byte was man an Speicher gespart hat, fast 'ne kleine Feier veranstaltet hat :grin:
 
Außerdem wird bei einem Char immer die angegebene Bytelänge verbraucht, d.h. auch wenn nichts drinsteht, verbraucht das Feld 32 Byte Speicher. Ein Varchar ist ein variables Char, das eben auch die Möglichkeit besitzt, weniger Platz zu verbrauchen, als angegeben.

Da dies hier nicht der Fall sein wird, da der Wert IMMER 32 Byte lang ist und das Feld IMMER gefüllt sein muss/sollte, genügt ein Char ;)

MySQL :: MySQL 5.1 Referenzhandbuch :: 11.4.1 Die CHAR- und VARCHAR-Typen
 
Werbung:
Zurück
Oben