首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问速度,PERL二进制散列文件与mySQL

问访问速度,PERL二进制散列文件与mySQL
EN

Stack Overflow用户
提问于 2011-02-15 05:06:24
回答 4查看 725关注 0票数 4

我目前使用很多存储在多个文件位置的perl二进制散列文件来将数据加载到这个cgi网站。我正在讨论,如果我决定在mySQL上存储我的数据,它会更快还是更慢。

有什么见解吗?我知道perl散列是完全加载到内存中的。

戈登

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-15 05:13:24

使用数据库意味着您的查找将会更慢,但是您的脚本将使用更少的内存。

使用内存中的散列意味着您的查找将会更快,但是您的脚本将使用更多的内存。

如果你没有记忆问题,并且你的散列永远不会变得更大,那么继续使用它们。

如果你没有记忆问题,你的哈希会变得更大,那么考虑使用数据库。

如果你的记忆有问题,可以使用数据库。

如果你想为了使用数据库而使用数据库(即学习新技能),那么就使用数据库。

票数 8
EN

Stack Overflow用户

发布于 2011-02-15 07:46:13

如果使用Perl散列来处理您的数据需求,那么您可能不需要一个成熟的SQL数据库的开销。有很多用于键>值存储的存储替代方案,例如Berkley DB和整个"NOSQL“运动。用谷歌搜索一下,你会发现很多信息。CPAN中存在许多这样的Perl接口。

票数 2
EN

Stack Overflow用户

发布于 2011-02-15 18:59:59

严格地说,从速度上讲,在直接的内存散列中找到单个完全匹配的键是最好的,除非您的数据可以放入数组中。(即,它将仅由一系列数字键访问,这些数字键形成从0开始的几乎连续的范围。)

如果您可能需要搜索多个可能的关键字(例如,姓名和员工ID),或者如果您需要执行不是严格基于相等的搜索(例如,“查找所有姓为‘Smith’的员工”),那么需要通过散列关键字进行搜索将大大减慢您的速度,并且数据库将开始看起来更好。

总体性能的另一个因素是,您提到您的哈希“存储在多个文件位置”。如果您只执行一次或几次查找,那么将散列从这些文件读取到内存中也需要时间,这再次使事情倾向于使用数据库,这将最小化从磁盘读取的不需要的数据量。

因此,这在很大程度上取决于您需要如何访问数据和访问模式。

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

https://stackoverflow.com/questions/4997266

复制
相关文章

相似问题

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