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

MD5をデータベースに保存するときのBINARY(16)とCHAR(32)の違い

    現在、BINARY(16)を使用すると、チェックサムの半分が失われます。 。 MD5チェックサムをBINARY(16)に保存する場合 ではなくバイナリデータとして保存する必要があります 16進数でエンコードされます。つまり:

    INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));
    

    別のチェックサムと目玉で比較したい場合は、HEX関数を使用して16進数に再度エンコードできます。

    SELECT HEX(md5_binary) FROM test;
    

    16進テキストの代わりにBINARYを使用してチェックサムを格納する利点は、ストレージの半分が必要になることです。




    1. SQL Serverインデックスの後方スキャン:理解、調整

    2. JDBC SQLServerException:このドライバーは統合認証用に構成されていません。

    3. 別のテーブルの`where`句を使用して特定のテーブルから値を選択します

    4. PostgreSQLでヒストグラムを作成する方法