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