哪种数据存储系统提供最佳的更新/更新插入性能?
我正在寻找一个提供最佳更新/更新插入性能的数据存储系统(首选 NoSql)。这是迄今为止最重要的方面。此外,更新记录的大小将快速增长也很重要。我一直在使用 MongoDB,但无法将更新性能达到所需的水平。
有人可以推荐什么吗?
I am looking for a data storage system (NoSql preferred) that offers the best update / upsert performance. This is by far the most important aspect. Also, it's important that the size of the updated records will grow quickly. I have been using MongoDB, but I cannot get the update performance to the levels required.
Can anyone recommend anything?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
由于我还无法对其他帖子发表评论,因此我会将其作为答案发布:
强烈建议购买更快的 HDD,正如 Remon 所说,7200rpm HDD 并不是很贵,当然,如果您想要最佳性能,SSD 会很棒。
根据您的问题,我只在 NoSQL 场景中使用过 mongoDB,并且考虑到我正在使用低端硬件,我在更新/更新插入方面看到了非常好的性能。
但是,我在这里每秒只处理几百次更新,我现在不知道更高级别的性能。
此外,您也没有指定在数据库上更新插入的数据量,也没有指定操作完成的频率,也没有指定“预测”的数量。
Since I cannot comment on other posts yet, I'll post this as an answer instead:
acquiring a faster HDD is rather recommended, as per what Remon said, 7200rpm HDDs aren't really expensive or anything, of course if you want optimal performance for that an SSD would be great.
As per your Question, I've only worked with mongoDB in the NoSQL scene, and given the fact that I'm working with low-end hardware I see very good performance when it comes to updates/upserts from it.
However, I'm only working with a couple of hundred updates per second here, I don't know about performance at a much higher level of volume right now.
Additionally, you also didn't specify the amount of data being upserted on the database, nor the frequency that the operation is done, nor the "predicted" amount.
正如其他人所说,找到瓶颈 (1) 的在哪里和什么比广泛的笼统声明更有帮助。
然而,根据我的经验,基于一个非常小且不科学的实验,Cassandra 似乎加载速度更快(当我尝试它时,我从未将空闲时间降至零)。
这只是一个观察 - 我不会将此视为任何建议
要做出明智的选择,您需要权衡
功能要求例如
基于键值存储的数据库,
(1) 请记住 - 你永远不会消除瓶颈 - 你只是将它们移到其他地方:-( - 一旦你解决了一个问题,你就会发现系统中另一个最慢的部分 - 幸运的是它是在不会对您产生不利影响的地方。
As others have said, finding where and what the bottlenecks(1) are helps more than a broad sweeping statement.
However, in my experience, on the basis of an extremely small and unscientific experiment, Cassandra does seem to load faster (I never got idle time down to zero when I was trying it out).
This is just an observation -- I would NOT take this as any recommendation
To make an informed choice you'll need to weigh up
functional requirements eg
database over a key-value store,
(1) remember - you never eliminate bottlenecks -- you just move them elsewhere :-( -- as soon as you solve one issue you'll find another slowest part of your system -- with luck it's in a place where it doesn't adversely affect you.
在具体转向其他数据库解决方案之前,MongoDB 的瓶颈是什么?您是否已最大化磁盘 IO?您是否用大量输入线程锤击服务器?您取得了什么类型的数字?我见过服务器级硬件每秒推送数万次插入,所以您需要什么。
显然,还有许多其他数据库解决方案可用作键值数据库。 Riak、Redis、Membase、CouchDB、HBase,仅举几例。但与 MongoDB 一样,这些数据库都不是魔法,它们仍然遵守计算机物理的基本定律。
因此,为了获得您的问题的真正好的答案,我们需要:
我提到的其他数据库的性能可能比 MongoDB 稍好,但它们不会性能不会提高 100 倍,因此我们确实需要验证您正在寻找的产品。
Before jumping to other DB solutions specifically, what was the bottleneck on MongoDB? Were you maxing out the disk IO? Did you hammer the server with lots of inputs threads? What type of numbers did you achieve? I've seen server-class hardware push tens of thousands of inserts / second so what do you need.
Obviously, there are lots of other DB solutions that serve as Key-Value DBs. Riak, Redis, Membase, CouchDB, HBase, just to name a few. But like MongoDB, none of these DBs are magic and they still obey the basic laws of computer physics.
So to get a really good answer to your question we'll need:
The other databases I mentioned may perform slightly better than MongoDB, but they won't perform 100 times better, so we really need to qualify what you're looking for.
Cassandra 提供了一个最终一致性模型(不过,这有点用词不当,因为它可以调整为非常一致),它允许非常好的插入/更新性能。我没有任何可靠的基准可以给您,但根据我自己的经验和我在网上阅读的大部分内容,看起来 Cassandra 提供了比 HBase 更好的插入/更新性能。
我会看一下两者,并使用一些示例数据进行尝试,看看哪一个适合您。我是 Cassandra 的超级粉丝,但希望他们的超级专栏更有用。
Cassandra provides an eventual consistency model (though, this is a bit of a misnomer as it can be tuned to be very consistent) which allows a very nice insert / update performance. I don't have any solid benchmarks to give you but most of what I've seen in my own experience and what I've read online, it looks like Cassandra gives better insert / update performance than HBase.
I would take a look at both and try them out with some sample data to see which one works for you. I'm a huge fan of Cassandra but wished their super columns were more useful.