我是一位Perl程序員,他帶有一些很好的腳本,用cURL提取HTTP頁面(來自URL的文本文件列表),並將它們保存到文件夾中。我該如何操作Perl的本地數據庫?
但是,要獲得的頁面數量在幾千萬。有時腳本在編號170,000時失敗,我必須手動再次啓動腳本。它會自動讀取URL並查看是否存在下載並跳過的頁面。但是,有幾十萬,還需要幾個小時才能跳回到停止的地方。顯然,這最終不會出現。
我被告知,而不是保存到一個文本文件,這是很難搜索和修改,我需要使用數據庫。我對數據庫瞭解不多,一年前剛剛在學校服務器上混淆了MySQL。我只需要添加數百萬行和一些靜態列的能力,快速搜索/修改一個,並且在局域網上執行此操作(如果這很困難,則可以在單臺計算機上執行)。當然,我需要使用perl訪問這個數據庫。
我應該從哪裏開始?我需要下載什麼來獲取在Windows上啓動的服務器?我應該使用哪些Perl模塊? (我正在使用ActiveState發行版)
原來,我需要爲每行存儲兩條以上的數據,所以我認爲這不會和SQLite一樣好,但我會在稍後收藏,謝謝! – 2010-09-27 18:02:22
你知道嗎,我可能不得不使用類似這樣的東西來查找我的數據庫中是否已有唯一的URL,您會建議使用Berkeley Hash還是BTree來存儲這些值以便更快地找到它? – 2010-09-27 19:45:18
散列對於快速獨特的查找和添加非常有用。 BTree保持一切排序。對於獨特的查找使用哈希。要處理多個數據列,您可以使用Storable或其他序列化程序來平滑數據,以使其位於數據列中。 MLDBM是幫助解決這個問題的工具之一。您也可以使用DBD :: DBM爲您的數據獲取DBI SQL接口。 – daotoad 2010-09-27 20:34:47