ホームページ > データベース > mysql チュートリアル > MySQL に SHA1 ハッシュ値を保存するための最も効率的なデータ型は何ですか?

MySQL に SHA1 ハッシュ値を保存するための最も効率的なデータ型は何ですか?

Barbara Streisand
リリース: 2024-11-13 12:10:02
オリジナル
660 人が閲覧しました

What is the Most Efficient Data Type for Storing SHA1 Hash Values in MySQL?

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): 44.56M
  • CHAR(40 ): 64.57M

BINARY(20) データ型を使用すると、ストレージ領域が大幅に削減されるため、MySQL に SHA1 ハッシュ値を保存する場合に推奨されます。

以上がMySQL に SHA1 ハッシュ値を保存するための最も効率的なデータ型は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート