md5 Schlüssel Datentyp mysql
Ralf hat eine Frage
- php
Hallo
ich habe ein md5 Schlüssel der in der Datenbank steht aber welchen Datentyp sollte ich nehmen?
ich habe varchar(32)
gibt es da noch was kleineres?
Ralf aus Wolframstein
hi,
ich habe ein md5 Schlüssel der in der Datenbank steht aber welchen Datentyp sollte ich nehmen?
ich habe varchar(32)
nimm char(32).
gibt es da noch was kleineres?
nein.
gruss,
wahsaga
Danke wahsaga!
Ich habe Dich hier schon öfters gesehen...
Wirst Du dafür bezahlt oder bist Du so gelangweilt das Du hier im Forum Sehlsorger bist ;-)
Wenn ich char nehme speichert mir phpmyadmin oder mysql es trotzdem als varchar ab?
Obwaohl dort kein Wert drin steht...
hi,
Wenn ich char nehme speichert mir phpmyadmin oder mysql es trotzdem als varchar ab?
Obwaohl dort kein Wert drin steht...
char(32) benötigt immer 32 bytes speicherplatz, auch wenn du einen leerstring einträgst. (wie es sich bei NULL verhält, weiss ich gerade nicht - vermute aber genauso.)
varchar benötigt aber immer noch ein byte mehr, als der inhalt lang ist - eben um die länge abzuspeichern.
wenn du also in die spalte _immer_ einen MD5-wert einträgst (der ja immer 32 bytes lang ist), würde ich char(32) vorziehen.
wenn das feld auch öfters leer bleibt, dann wohl doch eher varchar(32).
gruss,
wahsaga
Hi,
gibt es da noch was kleineres?
rein theoretisch gäbe es noch was kleineres, ist aber nicht zu empfehlen. MD5 besteht ja aus Hex-Zeichen, d. h., nur 16 unterschiedlichen Zeichen, das macht dann 2^4 sprich 4 Bits pro Zeichen. Speicherst du alles als char(32), brauchst du 32 Bytes, komprimiert wären es nur 16 Bytes (4*32/8).
Praktisch ist das allerdings nutzlos, wenn du nicht auf die Größe achten musst. Die Rechenzeit wäre zu schade, um den String zu verkürzen.
E7
--
ftp://guest:@e7live.us.to/