md5哈希为唯一索引中的URL

时间:2010-07-14 08:32:58

标签: php mysql hash indexing

我之前被问过这个与当前问题略有不同。但没有得到我正在调查的答案。

我的问题是我需要存储 md5($url)在MySQL的唯一索引中吗?我在一些代码中看到过这个实际上我不记得了..这是一个超过500万网址的大型数据库,索引是通过调用网址完成的。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我认为您不应该对您的网址进行哈希处理。唯一可能的原因是节省空间(如果大多数URL大于32个字符),但会增加碰撞风险。

你应该做的是normalize the URLs

答案 1 :(得分:1)

某些网站对数据库中的网址使用哈希,因为它们在网址中使用哈希表示用户重定向到外部网址。如果不是这样的话,我看不出有任何理由这样做。

答案 2 :(得分:0)

你是说这个网址是这样叫的:

www.yourdomain.com?id=89ce9250e9f469c9d1816e1cc0fb47a1

然后从数据库中查找id(89ce9250e9f469c9d1816e1cc0fb47a1,它是真实网址查询字符串的md5())以解析实际网址:

www.yourdomain.com?user=23&location=5&eventtype=23&year=2010

这是你所指的那种用法吗?

吉姆