MySQL に SHA1 ハッシュ値を保存する: VARCHAR フィールドの長さはどれくらいにする必要がありますか?
SHA1 ハッシュの結果を MySQL に保存する場合データベースでは、VARCHAR フィールドの適切な長さを決定することが重要です。 SHA1 値は 160 ビット長であるため、この長さに対応できるフィールドに格納する必要があります。
この記事では、長さ分の追加バイトが無駄になるため、SHA1 ハッシュ値の格納に VARCHAR フィールドを使用することに反対しています。固定長フィールドの。代わりに、スペースを無駄にすることなく 160 ビット SHA1 値を格納できる 20 文字の長さの BINARY(20) フィールドを使用することを推奨しています。
さらに、この記事では、UNHEX 関数を使用して SHA1 を変換することを提案しています。値を BINARY フィールドに格納する前にバイナリに変換します。これにより、生の SHA1 値を保存する場合と比較して、ストレージ要件が軽減されます。
この記事の最後では、BINARY(20) フィールドと CHAR(40) フィールドのストレージ要件を比較しています。 InnoDB エンジンを使用する場合、100 万レコードの場合、BINARY(20) は CHAR(40) よりも必要なスペースが少なくなります。
以上がMySQL に SHA1 ハッシュを保存する: BINARY(20) または VARCHAR(40)?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。