在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) 資料型別可以顯著減少儲存空間,使其成為MySQL 中儲存SHA1 雜湊值的首選。
以上是在 MySQL 中儲存 SHA1 雜湊值最有效的資料型別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!