首頁  >  文章  >  資料庫  >  在 MySQL 中儲存 SHA1 雜湊值最有效的資料型別是什麼?

在 MySQL 中儲存 SHA1 雜湊值最有效的資料型別是什麼?

Barbara Streisand
Barbara Streisand原創
2024-11-13 12:10:02591瀏覽

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

在MySQL 中高效儲存SHA1 雜湊值

將SHA1 雜湊結果儲存在MySQL 資料庫中時,必須確定適當的值最佳儲存效率的欄位類型。

問題來了:儲存雜湊結果的 VARCHAR 欄位的長度應該是多少?

答案:

雖然 VARCHAR 適用於可變長度數據,但對於 SHA1 雜湊等固定長度資料來說,它並不理想。 SHA1 值的長度始終為 160 位,使用 VARCHAR 會導致長度欄位浪費額外的位元組。

此外,儲存原始SHA1 值的效率很低,因為它每個字元使用4 位,需要40 個字元(160/4).

相反,建議使用BINARY(20)資料類型並使用UNHEX 函數將SHA1 值轉換為二進位。此方法以二進位格式儲存哈希,每個字元使用 8 位,僅需要 20 個字元 (160/8)。

儲存比較:

之間的比較BINARY(20) 和CHAR(40) 說明了效率優勢:

擁有數百萬條記錄:

  • BINARY(20): 44.56M
  • CHAR(40 ): 64.57M

使用BINARY(20) 資料型別可以顯著減少儲存空間,使其成為MySQL 中儲存SHA1 雜湊值的首選。

以上是在 MySQL 中儲存 SHA1 雜湊值最有效的資料型別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn