首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >perl和庞大的数据库,如何搜索和存储?

perl和庞大的数据库,如何搜索和存储?
EN

Stack Overflow用户
提问于 2010-09-11 01:03:03
回答 5查看 474关注 0票数 1

我有一个任务,并想在我的头脑中发展,我应该如何去编程。

我可能会得到一个csv格式的数据库,其中将有至少3600万行的数据。将来,用户需要根据多个列值的条件,通过CGI/perl接口搜索这个“数据库”,并显示匹配的行。

我应该如何使用perl读取csv格式(可能使用CPAN中的CSV解析器)并将其存储到哪种类型的数据库中?关键的优先事项是数据库的搜索速度。

任何样本编码都将受到欢迎。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-11 01:10:04

您可能希望使用适当的数据库解决方案。最容易设置的(取决于您对RDBMSes的熟悉程度)可能是MySQL。一旦完成了设置,您就需要查看Perl模块,以便与数据库交互。如今,DBIx::Class是一个“流行的东西”,因此,有很多人使用它来回答问题。

哦,对于CSV解析,如果您不想直接将其加载到数据库中(如果您选择的关系型数据库管理系统不支持直接摄取CSV文件),那么可以看看Text::CSV

票数 6
EN

Stack Overflow用户

发布于 2010-09-11 01:22:22

PostgreSQL能够导入CSV文件:

http://www.postgresql.org/docs/current/static/sql-copy.html

COPY命令也比一次提交36M次插入更有效。

一旦在DBMS上进行设计,您就应该寻找导入数据的方法。不过,有了这么多记录,我就不会用MySQL了。

如果数据不是关系型的,并且只会变得更大,那么您可能需要考虑使用Hadoop或其他形式的MapReduce。它会将30分钟的查询转换为5分钟。

票数 3
EN

Stack Overflow用户

发布于 2010-09-11 01:08:27

大多数数据库都有将CSV文件直接加载到表中的方法。例如,用于Oracle的SQLLoader或用于MySQL的load命令。

以一种有效的方式搜索数据库将取决于数据以及您期望如何搜索它。(例如,哪些字段将是有趣的,您可能对哪些字段进行排序,等等)如果没有更多的信息,很难给你一个可靠的答案,尽管你应该遵循索引的一般最佳实践。

有关访问数据库的代码示例,请参阅以下链接:

MySQL DBI Example

PERL DBI Doc

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3686642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档