我有兩張表,列出了從不同來源獲取的網址。哪個是比較兩個網址的最好和最快的方法?
我想查找常用條目並將它們放在單獨的表中。
這是我在做什麼:
- 找到URL的MD5哈希值,而獲取它們。
- 將它們存儲在一列中。
- 我以數組的形式獲取一個表,通過它運行一個循環並插入md5哈希值相同的其他表中的值。
編輯:我應該去掉「http://」和「www」的網址。
我想知道的任何其他方法,這是更好,更快,使用我可以執行上述
我使用PHP + MySQL的
我有兩張表,列出了從不同來源獲取的網址。哪個是比較兩個網址的最好和最快的方法?
我想查找常用條目並將它們放在單獨的表中。
這是我在做什麼:
編輯:我應該去掉「http://」和「www」的網址。
我想知道的任何其他方法,這是更好,更快,使用我可以執行上述
我使用PHP + MySQL的
用於標準化網址。 –
順便說一句,不確定MurmurHash的PHP實現將比md5函數更快。這需要測試。無論如何,真正的速度,你可以使PHP插件。 –
我猜在PHP中實現MumurHash會很困難。還有其他更快的散列方法嗎? – Jagira
試着這麼做:
INSERT INTO table3 (SELECT url FROM table1, table2 WHERE table1.hash = table2.hash)
這不是一個有效的SQL語句,但是像這樣的嵌套查詢應該讀取來自table1和table2的URL,並通過它們的hash進行匹配並將它們放入table3。
編輯: 如果您想淨化您的輸入網址(例如刪除GET變量),我會做到這一點之前,將它們保存到tabel1和table2。我不會刪除http和www,因爲「https://somesite」和「http://somesite」以及「www.somesite.com」和「somesite.com」可能有不同的內容。
SELECT * FROM table1 WHERE hash IN (SELECT hash FROM table2)
您可能也想看看錶連接的概念。
我有點好奇 - 誰能告訴我,爲什麼你會在所有的hash網址是什麼?它是獲得一個比較容易比較的數據類型(而不是字符串搜索)嗎? –