2

我是一名 Perl 程序员,拥有一些不错的脚本,可以使用 cURL 获取 HTTP 页面(从 URL 的文本文件列表中)并将它们保存到文件夹中。

但是,要获取的页面数是数千万。有时脚本在 170,000 号上失败,我必须手动重新启动脚本。它会自动读取 URL 并查看是否有页面下载并跳过。但是,有几十万,仍然需要几个小时才能跳回到它停止的地方。显然,这最终不会成功。

有人告诉我,我需要使用数据库,而不是保存到难以搜索和修改的文本文件。我对数据库了解不多,一年前只是在学校服务器上弄乱了MySQL。我只需要能够添加数百万行和一些静态列,快速搜索/修改一个,然后在局域网(或单台计算机,如果这很困难)上完成所有这些操作。当然,我需要使用 perl 访问这个数据库。

我应该从哪里开始?我需要下载什么才能在 Windows 上启动服务器?我应该使用哪些 Perl 模块?(我使用的是 ActiveState 发行版)

4

3 回答 3

6

有很多种数据库,但如果您已经决定使用 SQL 数据库并试图简化设置过程,您可能需要查看 SQLite 和DBI/DBD::SQLite模块,它们允许您从 perl 中使用它。

于 2010-09-26T17:49:15.337 回答
5

由于您只需要在一个列上进行搜索,因此您可能希望通过使用或来考虑像Berkeley DB这样的键/值存储数据库。BerkeleyDBDB_File

通常,您可以将这些键/值数据库视为从磁盘而不是内存操作的 Perl 哈希。精确的键查找非常快。其他一切都需要扫描整个数据集。

于 2010-09-26T19:29:29.180 回答
1

查看DBI。如果您不喜欢程序中的 SQL,请尝试SQL::Abstract

于 2010-09-26T17:46:52.110 回答