相关疑难解决方法(0)

考虑RAM的网址或散列索引

我正在开发一个项目,每天需要添加/更新大约100万个网址.有些日子主要是更新,有些日子大多是添加,有些日子是混合.

因此,在每个查询中都需要在url表中查找url的唯一性.

如何查找url的速度非常快,因为目前index设置在url列并且它运行良好但是在未来几周内,如果索引保留在同一列上并且新记录将以百万为单位添加,则RAM将不够.

这就是为什么我正在寻找一个解决方案,以便当总共有1.5亿个网址时,它的查找速度应该很快.我正在考虑在md5上创建索引,但后来担心碰撞机会.一位朋友告诉我也计算crc32 hash并与md5连接以使碰撞可能性为零并将其存储在二进制(20)中,这样只将20个字节作为索引而不是255当前varchar(255)设置为url列数据类型.

目前总共有大约5000万网址和8GB内存工作正常.

昨天,我问了一个问题url文本压缩(不缩短)和存储在mysql相关的同一个项目.

[编辑] 我想到了另一种解决方案,只能以十进制形式输入crc32哈希以加快查找速度.并在应用程序级别移植检查返回的记录数.如果返回的记录超过1条,则还应匹配精确的URL.这样,通过为每行存储4个字节而不是20个字节(md5 + crc32),同时保持RAM和磁盘空间的低负载,也可以避免冲突.你说的话?

mysql url ram crc32 md5

4
推荐指数
1
解决办法
1631
查看次数

标签 统计

crc32 ×1

md5 ×1

mysql ×1

ram ×1

url ×1