对于webscraper,我将在一个表中存储500多万个完整的url。
我需要经常检查URL是否不存在于表中。
哪种栏目类型和策略最适合演出?
带有varchar和索引的url。
或者
具有哈希(md5?)检查一下。
还是完全不同的策略?

最佳答案

第二种选择。如果需要检查URL是否不存在,那么URL的HASH上的unique约束是最佳方法。
md5虽然已经过时,但对于您的用例来说是可以的,因为您有大约500万行,所以不太可能发生冲突。
对于列,使用BINARY(16)。您可以将UNHEX(MD5('your url here'));存储到具有固定索引长度的BINARY(16)中。
md5是128位的,您不需要人类可读的表示,因此您可以保存“原始”二进制文件,这样您就可以将存储需求减少一半,因此不必使用BINARY(16)

07-28 03:01
查看更多