SHA1 ハッシュ値を MySQL に効率的に保存する
SHA1 ハッシュの結果を MySQL データベースに保存する場合、適切なハッシュ値を決定することが重要です。
ハッシュ結果を格納するための VARCHAR フィールドの長さはどれくらいにすべきでしょうか?
答え:
VARCHAR は可変長データには適していますが、SHA1 ハッシュのような固定長データには理想的ではありません。 SHA1 値は常に 160 ビット長であり、VARCHAR を使用すると、長さフィールドに追加のバイトが無駄になります。
さらに、未加工の SHA1 値を保存すると、1 文字あたり 4 ビットが使用され、40 文字が必要となるため非効率的です。 (160/4).
代わりに、BINARY(20) データ型を使用し、UNHEX 関数を使用して SHA1 値をバイナリに変換することをお勧めします。この方法では、1 文字あたり 8 ビットを使用してハッシュをバイナリ形式で保存し、必要な文字数は 20 文字 (160/8) だけです。
ストレージの比較:
次の比較BINARY(20) と CHAR(40) は、効率の利点を示しています。
数百万のレコードの場合:
BINARY(20) データ型を使用すると、ストレージ領域が大幅に削減されるため、MySQL に SHA1 ハッシュ値を保存する場合に推奨されます。
以上がMySQL に SHA1 ハッシュ値を保存するための最も効率的なデータ型は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。