Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何使用Perl操作本地数据库?_Windows_Database_Perl_Lan - Fatal编程技术网

Windows 如何使用Perl操作本地数据库?

Windows 如何使用Perl操作本地数据库?,windows,database,perl,lan,Windows,Database,Perl,Lan,我是一名Perl程序员,有一些很好的脚本,可以使用cURL获取HTTP页面(从URL的文本文件列表中),并将其保存到文件夹中 然而,要获得的页面数量是数千万。有时脚本在170000上失败,我必须手动重新启动脚本。它会自动读取URL并查看是否有下载的页面并跳过。但是,有了几十万人,仍然需要几个小时才能跳回到它结束的地方。显然,这最终不会成功 有人告诉我,我需要使用数据库,而不是保存到文本文件(很难搜索和修改)中。我对数据库了解不多,只是一年前在学校服务器上乱搞了MySQL。我只需要能够添加数百万行

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

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

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


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

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

有很多种数据库,但是如果您已经决定使用SQL数据库,并且正在尝试简化安装过程,则可能需要查看SQLite和
DBI
/
DBD::SQLite
模块,它允许您从Perl .< /P>< P>中使用它,因为您只需要在一个列上搜索,您可能希望使用一个或./P>来考虑一个密钥/值存储库。
通常,您可以将这些键/值数据库视为从磁盘而不是内存操作的Perl哈希。精确的密钥查找非常快。其他一切都需要扫描整个数据集。

是的,我在SQLite网站上读过,这听起来正是我需要的。如果你不介意的话,你能给我一些简单的步骤来在Windows机箱上设置环境吗?或者至少是一些关于如何做的最新文档。我下载了sqlite_mergation-3_7_2.zip,但现在我迷路了……安装草莓Perl并告诉它的CPAN客户端安装我提到的两个模块。哦,没有意识到所有事情都是由这些模块处理的。谢谢,我会尝试一下。DBD::SQLite包含在草莓和ActivePerl中。草莓当然更好。事实证明,我需要为每行存储两个以上的数据,所以我认为这不会像SQLite那样奏效,但我会为以后添加书签,谢谢!你知道吗,如果我的数据库中已经有一个唯一的URL,我可能需要使用类似的东西来查找,你会建议使用Berkeley哈希或BTree来存储这些值以更快地查找吗?哈希有助于快速查找和添加唯一的URL。BTree将所有内容分类。对于唯一查找,请使用散列。要处理多个数据列,可以使用Storable或另一个序列化程序来展平数据,使其位于数据列中。MLDBM是帮助实现这一点的工具之一。您还可以使用DBD::DBM获得数据的DBISQL接口。