2013-08-06 101 views
6

簡單的用我的鏈接抽取程序(寫在python3.3)我想用一個數據庫來存儲各地100.000網站:快速的關係數據庫,與Python

  • 只是URL,
  • 時間郵票
  • 和每個網站的幾個屬性

我沒有對數據庫中的知識的列表,卻發現下面可能適合我的目的:

  • PostgreSQL的
  • SQLite的
  • 火鳥

我感興趣的速度(來訪問數據庫並獲取想要的信息)。例如:對於網站x,屬性y是否存在,如果是,則讀取它。寫作的速度當然也很重要。

我的問題:速度有很大差異還是對我的小程序無關緊要?也許有人可以告訴哪個數據庫符合我的要求(並且很容易用Python來處理)。

回答

4

的大小和你的數據庫的規模不是特別大,這是很好的幾乎任何現成的貨架數據庫解決方案的範圍之內。

基本上,你要做的是在你的機器上安裝數據庫服務器,它會出現在給定的端口上。然後你可以在Python中安裝一個庫來訪問它。

例如,如果你想使用PostgreSQL,你將你的機器上安裝它,它會拿出連接到某些端口像5000或端口5432

但如果你只是有你的信息在談論存儲和檢索時,您可能想要使用NoSQL解決方案,因爲它非常簡單。

例如,您可以在您的服務器上登錄install mongodb,然後安裝pymongo。 pymongo的教程將教你幾乎所有你需要的應用程序。

5

如果速度是主要標準,那麼我會建議去內存數據庫。 看看http://docs.python.org/2/library/sqlite3.html

它也可以作爲一個普通的數據庫使用,對於內存模式使用下面的內容,db應該在RAM本身創建,因此運行時訪問速度更快。

import sqlite3 
conn = sqlite3.connect(':memory:') 
+0

也許我還不夠清楚。我的程序將在服務器上全天候運行,應該可以從其他機器連接到數據庫。 – zwieback86

+0

在這種情況下,您應該使用更混合的方法,如mongodb。數據庫是內存映射的,所以你可以快速訪問,它也在磁盤上。 http://docs.mongodb.org/manual/faq/storage/ – v2b