【发布时间】:2011-10-21 13:50:58
【问题描述】:
我正在寻找能够提供最佳更新/更新插入性能的数据存储系统(首选 NoSql)。这是迄今为止最重要的方面。此外,重要的是更新记录的大小将快速增长。我一直在使用 MongoDB,但无法将更新性能提升到所需的水平。
有人可以推荐吗?
【问题讨论】:
我正在寻找能够提供最佳更新/更新插入性能的数据存储系统(首选 NoSql)。这是迄今为止最重要的方面。此外,重要的是更新记录的大小将快速增长。我一直在使用 MongoDB,但无法将更新性能提升到所需的水平。
有人可以推荐吗?
【问题讨论】:
在具体跳到其他数据库解决方案之前,MongoDB 的瓶颈是什么?您是否已将磁盘 IO 最大化?您是否使用大量输入线程来锤击服务器?你达到了什么类型的数字?我已经看到服务器级硬件每秒推送数万次插入,那么您需要什么。
显然,还有许多其他数据库解决方案可用作键值数据库。 Riak、Redis、Membase、CouchDB、HBase,仅举几例。但是和 MongoDB 一样,这些数据库都不是魔法,它们仍然遵循计算机物理的基本定律。
因此,要对您的问题有一个非常好的答案,我们需要:
我提到的其他数据库的性能可能比 MongoDB 略好,但它们的性能不会好 100 倍,因此我们确实需要确定您正在寻找的数据库。
【讨论】:
Cassandra 提供了一个最终一致性模型(不过,这有点用词不当,因为它可以调整为非常一致),它允许非常好的插入/更新性能。我没有任何可靠的基准可以给你,但是根据我自己的经验和在线阅读的大部分内容,Cassandra 的插入/更新性能似乎比 HBase 更好。
我会看看两者,并使用一些示例数据进行尝试,看看哪一个适合你。我是 Cassandra 的忠实粉丝,但希望他们的超级专栏更有用。
【讨论】:
由于我还不能对其他帖子发表评论,因此我将其发布为答案: 建议购买更快的 HDD,正如 Remon 所说,7200rpm 的 HDD 并不昂贵,当然,如果您想要获得最佳性能,SSD 会很棒。
根据您的问题,我只在 NoSQL 场景中使用过 mongoDB,并且考虑到我使用的是低端硬件这一事实,我看到它的更新/更新插件性能非常好。
但是,我在这里每秒只处理几百次更新,我不知道现在在更高级别的音量下的性能。
此外,您也没有指定在数据库上更新插入的数据量,也没有指定操作完成的频率,也没有指定“预测”数量。
【讨论】:
正如其他人所说,找到哪里和什么瓶颈(1)不仅仅是一个笼统的陈述。
但是,根据我的经验,根据一个极小且不科学的实验,Cassandra 的加载速度似乎确实更快(我在尝试时从未将空闲时间降至零)。
这只是一个观察结果 -- 我不将此作为任何建议
要做出明智的选择,您需要权衡
(1) 记住——你永远不会消除瓶颈——你只是将它们移到别处:-(——一旦你解决了一个问题,你就会发现系统中另一个最慢的部分——幸运的是,它位于不会对您产生不利影响的地方。
【讨论】: