我正在使用哈希算法为数据库表创建主键。我使用 SHA-1 算法,该算法非常适合我的目的。该数据库甚至还提供了 SHA-1 的实现。计算哈希值的函数返回 40 个字符的十六进制值。因此我将十六进制字符存储在char(40)
column.
该表将有很多行,>= 200 Mio。这就是为什么我正在寻找数据密集程度较低的存储哈希的方法。 40 个字符×~200 Mio。 rows 将需要一些 GB 的存储空间...由于十六进制是 base16 我想我可以尝试将其存储在 base 256 中,希望将所需的字符数减少到大约 20 个字符。您有关于使用 256 进制进行压缩的技巧或论文吗?
- 将其存储为blob:每个字符存储 8 位数据而不是 4 位数据是 2 倍压缩(不过您需要某种方法来转换它),
- 切断一些字符:你有 160 位,但即使宇宙结束,128 位也足以用于唯一密钥,并且对于大多数用途来说 80 位甚至就足够了(你不需要加密保护)。如果你有防冲突算法,使用36或40位就足够了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)