8

对于我的链接抓取程序(用 python3.3 编写),我想使用一个数据库来存储大约 100.000 个网站:

  • 只是网址,
  • 时间戳
  • 并为每个网站列出几个属性

我对数据库一无所知,但发现以下内容可能符合我的目的:

  • PostgreSQL
  • SQLite
  • 火鸟

我对速度感兴趣(访问数据库并获取所需信息)。例如:对于网站 x,属性 y 是否存在,如果存在,请阅读它。写作速度当然也很重要。

我的问题:速度是否有很大差异,或者对我的小程序无关紧要?也许有人可以告诉我哪个数据库符合我的要求(并且很容易用 Python 处理)。

4

2 回答 2

5

如果速度是主要标准,那么我建议使用内存数据库。看看http://docs.python.org/2/library/sqlite3.html

它也可以用作普通数据库,对于内存模式,请使用以下内容,并且数据库应该在 RAM 本身中创建,因此运行时访问速度更快。

import sqlite3
conn = sqlite3.connect(':memory:')
于 2013-08-06T18:49:41.593 回答
5

您的数据库的大小和规模并不是特别大,并且几乎在任何现成的数据库解决方案的范围内。

基本上,你要做的是在你的机器上安装数据库服务器,它会出现在给定的端口上。然后,您可以在 Python 中安装一个库来访问它。

例如,如果你想使用 Postgresql,你将把它安装在你的机器上,它会连接到某个端口,比如 5000 或 5432 端口。

但是,如果您只有要存储和检索的信息,您可能希望使用 NoSQL 解决方案,因为它非常简单。

例如,您可以在服务器上安装 mongodb,然后安装pymongo。pymongo 教程将教您应用程序所需的几乎所有内容。

于 2013-08-06T20:50:40.770 回答