在 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中文网其他相关文章!