哪个是比较两个网址的最佳和最快的方法?

时间:2010-03-09 15:06:46

标签: php mysql compare

我有两个表,其中列出了从不同来源获取的网址。

我想查找常用条目并将它们放在单独的表中。

这就是我正在做的事情:

  1. 在获取网址时找到网址的md5哈希值。
  2. 将它们存放在一列中。
  3. 我将一个表作为数组获取,运行循环并插入其他表中的值,其中md5哈希是相同的。
  4. 编辑:我应该删除“http://”和“www”的网址。

    我想知道任何其他更好,更快的方法,使用它我可以执行上述操作。

    我正在使用PHP + MySQL

3 个答案:

答案 0 :(得分:4)

如果你需要真正的速度,MD5有点慢。试试MurmurHash

您应该在哈希计算之前进行以下转换:

  • 剥离“http://”和www。
  • 剥离尾部斜杠
  • 规范化网址(urlencode

答案 1 :(得分:0)

尝试类似:

INSERT INTO table3  (SELECT url FROM table1, table2 WHERE table1.hash = table2.hash)

这不是一个有效的SQL语句,但是像这样的嵌套查询应该读取table1和table2中与其哈希匹配的url并将它们放在table3中。<​​/ p>

编辑: 如果你想清理你的输入网址(例如删除GET变量),我会在将它们保存到tabel1和table2之前执行此操作。我不会删除http和www为“https://somesite”和“http://somesite”以及“www.somesite.com”和“somesite.com”可能有不同的内容。

答案 2 :(得分:0)

SELECT * FROM table1 WHERE hash IN (SELECT hash FROM table2)

您可能还想查看表连接的概念。