【发布时间】:2011-06-21 14:37:26
【问题描述】:
我的代码提取了大约 1000 个 HTML 文件,提取了相关信息,然后将这些信息存储在 MySQL TEXT 字段中(因为它通常很长)。我正在寻找一个系统来防止数据库中的重复条目
我的第一个想法是在表中添加一个 HASH 字段(可能是 MD5),在每次运行开始时提取哈希列表并在插入数据库之前检查重复项。
第二个想法是存储文件长度(字节或字符或其他),对其进行索引,并检查重复的文件长度,如果发现重复的长度,则再次检查内容。
不知道什么是性能方面的最佳解决方案。也许有更好的方法?
如果有一种有效的方法来检查文件是否 >95% 相似,那将是理想的,但我怀疑是否存在?
感谢您的帮助!
顺便说一句,我正在使用 PHP5/Kohana
编辑:
刚刚有了一个检查相似性的想法:我可以计算所有字母数字字符并记录每个字符的出现
例如:17aB... = 1a,7b,10c,27c,...
潜在问题是字符数的上限(大约 61 个?)
我想误报仍然很少见。 . .
好主意/坏主意?
【问题讨论】:
-
哈希的冲突比计算字母数字的出现次数要少。如果您想要一个更抗冲突的哈希,请使用 sha1。不要浪费时间重新发明一个更糟糕的系统。
-
是的,这就是我最终决定的
标签: php mysql hash duplicates