通过计算表行的哈希码检查重复记录:
我实际上是通过用户界面将excel文件通过用户界面上传到mysql数据库中,然后才实际插入记录,我必须对照主表中已存在的记录来标识重复记录(记录数可以为2500000),并且我必须尽快完成。
我对此的解决方案是我在表中添加了另一个字段,即哈希码,并且在插入记录时,我将为每一行计算哈希码,在检查重复的行时,我将仅匹配哈希码字段。哈希码存在于主表中,则记录重复,否则唯一。
还有其他方法可以更快地执行此操作,因为我不知道mysql数据库功能
谢谢!
a)如果您想坚持使用哈希码,请使用类似
SELECT sha256(CONCAT(col1, "-", col2, "-", col3)) FROM ...
而不是MD5()-最近我在这里遇到了一些冲突。不要忘记在新列上添加索引。
b)为了您的目的,简单
SELECT col1, col2, col3, Count(*)
FROM table
GROUP BY 1,2,3 HAVING Count(*) > 1
可能就是您想要的。这也将为您提供100%的重复,并且您不必添加新的哈希列并进行检查...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句