【发布时间】:2016-08-26 11:53:49
【问题描述】:
我有 1000 万条记录。每条记录大约有 100 个字段。当我阅读一条记录时,我想确定该记录是否与我之前阅读过的另一条记录重复。重复检查的标准基于 20 个字段并检查是否完全相等。我可以获取新记录并与 20 个字段中的每一个字段的所有先前记录进行比较。
我正在考虑的另一种方法是将 20 个字段散列到一个字段中,并将散列与之前所有记录的散列进行比较。为此,我需要一个哈希函数来赋予我唯一性。我知道有 SHA512、SHA224 等函数。哪个哈希函数适合我的用例?
问候,
亚什
【问题讨论】:
-
任何哈希函数都会产生冲突,你应该使用哈希集或类似的东西
-
一目了然,SHA-256 或类似的应该可以。 20个字段是什么?整数?字符串?如果是字符串,平均长度?
-
尽可能好和强大,没有散列函数可以保证唯一性。您可以采取最好的方法,并将其与另一种方法结合起来,采用完全不同的方法来缩小碰撞的可能性,但理论上仍然可行。
-
为什么是 20 个字段?表没有主键?
-
如果目标是设定完全平等,为什么不只是平等呢?