Ich würde VARCHAR
verwenden für Daten mit variabler Länge, aber nicht für Daten mit fester Länge. Weil ein SHA-1-Wert immer ist 160 Bit lang, der VARCHAR
würde nur ein zusätzliches Byte für die Länge des Fixed- Längenfeld
.
Und ich würde auch nicht den Wert
Daher empfehle ich Ihnen, BINARY(20) zu verwenden.
und der UNHEX
Funktion
um den SHA1
zu konvertieren Wert in binär.
Ich habe die Speicheranforderungen für BINARY(20)
verglichen und CHAR(40)
.
CREATE TABLE `binary` (
`id` int unsigned auto_increment primary key,
`password` binary(20) not null
);
CREATE TABLE `char` (
`id` int unsigned auto_increment primary key,
`password` char(40) not null
);
Mit Millionen Datensätzen binary(20)
dauert 44,56 MB, während char(40)
benötigt 64,57 M.InnoDB
Motor.