Der md5-Hash als bytea
verwendet nur 16 Bytes anstelle von 32 für die Hexa-Darstellung:
Beide obigen Formulare funktionieren, aber um die einfachere Funktion digest
zu verwenden, muss die Erweiterung pgcrypto
als Superuser installiert werden:
Verwenden Sie die Funktion digest
oder die Kombination decode
und md5
wie oben, um nach einer bestimmten Zeichenfolge zu suchen:
Der pg_column_size
Wert ist die Speichergröße. Es ist weniger als die Hälfte für die bytea
im Vergleich zur Hexa-Darstellung.
bytea
hat einen Ein-Byte-Overhead, aber mit einer Auffüllung auf acht Bytes führt dies zu einer beträchtlichen Verschwendung.
Verwenden Sie stattdessen den Typ uuid
, der nur 16 Byte verwendet. Sie müssen etwas wie REPLACE(md5::text, '-', '') as md5
verwenden, wenn Sie es auswählen, aber das sollte eine schnelle Operation sein.
Tags und Links database postgresql database-design