在MySQL 中儲存SHA1 雜湊值:選擇最佳欄位長度
將SHA1 雜湊的輸出儲存在MySQL 資料庫中時,考慮保存該雜湊值的欄位的適當長度至關重要。本文透過檢查各種選項並根據效能和儲存效率提供建議來探討此問題。
可變長度欄位與固定長度欄位
對於可變長度數據,VARCHAR可能看起來很誘人。但是,由於 SHA1 值始終為 160 位元長,因此使用 VARCHAR 會因為長度規格所需的額外位元組而浪費空間。
二進位與十六進位儲存
SHA1 演算法傳回每個字元使用 4 位元的值。直接儲存該值需要長度為 40 個字元的 VARCHAR。但是,透過使用 UNHEX 函數將 SHA1 值轉換為二進制,您可以使用 BINARY(20) 欄位將儲存需求減少到 20 個字元。
效能注意事項
透過比較測試證明,在儲存數百萬筆記錄時,BINARY(20) 比 CHAR(40) 更有效率。 BINARY(20) 需要更少的儲存空間,從而提高資料庫操作的效能。
建議
因此,在MySQL 中儲存SHA1 雜湊值的建議方法是使用BINARY(20) 並使用UNHEX 將十六進位SHA1 值轉換為二進制。此方法提供了儲存空間的最佳利用並確保高效的資料庫效能。
以上是如何在 MySQL 中最佳化儲存 SHA1 雜湊值:BINARY(20) 或 VARCHAR(40)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!