SHA1-Hash-Werte effizient in MySQL speichern
Beim Speichern des Ergebnisses eines SHA1-Hashs in einer MySQL-Datenbank ist es wichtig, die geeigneten Werte zu ermitteln Feldtyp für optimale Speichereffizienz.
Es stellt sich die Frage: Wie lang sollte das VARCHAR-Feld zum Speichern sein? Hash-Ergebnis?
Antwort:
Während VARCHAR für Daten variabler Länge geeignet ist, ist es nicht ideal für Daten fester Länge wie einen SHA1-Hash. Ein SHA1-Wert ist immer 160 Bit lang und die Verwendung von VARCHAR würde dazu führen, dass ein zusätzliches Byte für das Längenfeld verschwendet wird.
Außerdem ist das Speichern des rohen SHA1-Werts ineffizient, da es 4 Bits pro Zeichen verwendet, was 40 Zeichen erfordert (160/4).
Stattdessen wird empfohlen, den Datentyp BINARY(20) zu verwenden und den SHA1-Wert in einen Binärwert umzuwandeln mit der UNHEX-Funktion. Diese Methode speichert den Hash im Binärformat mit 8 Bit pro Zeichen und erfordert nur 20 Zeichen (160/8).
Speichervergleich:
Ein Vergleich zwischen BINARY(20) und CHAR(40) verdeutlichen den Effizienzvorteil:
Mit Millionen von Datensätze:
Durch die Verwendung des Datentyps BINARY(20) werden die Daten erheblich reduziert Speicherplatz, was es zur bevorzugten Wahl für die Speicherung von SHA1-Hashwerten in MySQL macht.
Das obige ist der detaillierte Inhalt vonWas ist der effizienteste Datentyp zum Speichern von SHA1-Hashwerten in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!