sql >> データベース >  >> RDS >> Mysql

MySQLでのSHA1ハッシュ値の保存

    VARCHARを使用します 可変長データの場合。ただし、固定長データの場合は使用できません。 SHA-1の値は常にであるため 160ビット長、VARCHAR 固定長の追加バイトを無駄にするだけです-長さフィールド

    また、値を保存しません SHA1 戻ってきました。 1文字あたり4ビットしか使用しないため、160/4=40文字が必要になるためです。ただし、1文字あたり8ビットを使用する場合は、160/8=20文字の長さのフィールドのみが必要になります。

    したがって、 BINARY(20) および UNHEX 機能 SHA1を変換します バイナリへの値。

    BINARY(20)のストレージ要件を比較しました およびCHAR(40)

    CREATE TABLE `binary` (
        `id` int unsigned auto_increment primary key,
        `password` binary(20) not null
    );
    CREATE TABLE `char` (
        `id` int unsigned auto_increment primary key,
        `password` char(40) not null
    );
    

    数百万のレコードがあるbinary(20) char(40)が44.56Mかかるのに対し、 64.57Mかかります。InnoDB エンジン。



    1. MySQLのパフォーマンス:長いクエリの識別

    2. SQLで最上位の親を見つける

    3. エラー:Postgresを使用したシーケンスcitys_id_seqの権限が拒否されました

    4. Oracle 11gクライアントにはODP.NETが必要ですか?