首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDBM的替代或继承

GDBM的替代或继承
EN

Stack Overflow用户
提问于 2009-03-29 21:28:40
回答 4查看 4.1K关注 0票数 4

我们有一个GDBM键值数据库,作为在C++中实现的面向web的负载平衡应用程序的后端。应用程序提供的数据变得非常大,因此我们的管理员已经将GDBM文件从“本地”存储(在NFS服务器上,或者非常接近地)转移到一个大型的、共享的、远程的、安装在NFS上的文件系统。

这影响了性能。我们的性能测试(在测试环境中)显示页面加载时间从数百毫秒(对于本地磁盘)跳到了几秒(通过NFS,本地网络),有时高达30秒。我认为很大一部分问题在于应用程序对GDBM文件进行了大量随机读取,而且这些读取速度比NFS慢,而且在生产中(前端和后端之间有更多的网络硬件)以及随着我们的数据库变得更大,这将更加糟糕。

虽然这不是一个关键的应用程序,但我希望提高性能,并有一些可用的资源,包括应用程序开发人员时间和Unix管理员。我的主要限制是时间只有几个星期的资源。

在我看来,我的选择是:

  1. 通过调整参数来提高NFS性能。我的直觉是,我们不会从中得到很多,但我以前是错误的,我真的不太了解NFS调优。
  2. 移动到不同的键值数据库,如梅卡切特b东京内阁
  3. 用其他协议代替NFS (已经提到了iSCSI,但我不熟悉它)。

我应该如何处理这个问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-03-29 22:52:08

不要太执着于“关系与非关系”的比较。这似乎与这一问题无关。

您的应用程序跨越的是另一条线:从本地快速文件存储上的小型数据库到通过网络访问的大型数据库。跨越这条线意味着您现在更好地使用了一个专用的、网络服务的数据库管理系统。管理服务器是否管理关系数据库与该方面无关。

为了快速启动和运行,MariaDB (MySQL的接班人)可能是您的最佳选择。如果你预见到它会远远超出现在的位置,你最好把它放在PostgreSQL中,因为它最终还是需要去的:-)

票数 10
EN

Stack Overflow用户

发布于 2009-03-29 21:54:13

这似乎不是您想要听到的,但老实说,如果我是您,我会把它扔到mysql表中。这并不是说使用起来要困难得多,而且您可以从中获得很多好处,尤其是针对您实际情况的远程访问协议,而不是GDBM。

票数 2
EN

Stack Overflow用户

发布于 2009-07-13 19:55:32

如果您想坚持使用非关系数据库,可以尝试BDB或DJB的CDB。到目前为止,我已经使用了这两种方法,我认为在性能方面,它们的性能优于GDBM。

但是请记住大鼻子的答案,因为我也认为您的瓶颈可能不是您正在使用的数据结构(GDBM),而是您的基础结构。

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

https://stackoverflow.com/questions/695415

复制
相关文章

相似问题

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