首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在我们的例子中寻找合适的NoSQL db

问在我们的例子中寻找合适的NoSQL db
EN

Stack Overflow用户
提问于 2014-02-03 12:31:02
回答 2查看 62关注 0票数 0

我们有一个运行在PHP + MySQL中的跟踪系统。我们每天收到大约800万到1000万个条目,相当于平均每秒在与clickid键链接的3个表上执行大约100次插入。同时,我们可以在这些表上选择来搜索一个clickid,或者在转换后更新一个,等等。我们正在寻找一种更好的解决方案,以便能够使用后台并实时获取统计数据,因为现在显示结果需要大约150秒。我们使用cronjob来填写一个统计表并对其进行操作,这使得我们可以非常快速地获得结果,但是这个cronjob每小时运行两次,所以我们远离实时统计……

因此,我们正在考虑切换到NoSQL解决方案,但我们不确定哪个nosql db最适合我们的特定情况?我们应该能够过滤和检索大约8个不同的关键字的统计数据,如campaignid,publisherid,advertiserid,date,...

我们在考虑测试Mongodb和Redis,你认为哪一个最合适?在你看来,为什么呢?我们现在确实有大约5000.000.000个条目应该作为文档插入,每秒钟大约有100个文档被插入……所以它会悄悄地快速增长,我们需要保留数据。您认为显示这些数据量的结果的时间是什么?

另外,你认为把所有的东西都放在一个大的集合里还是分成不同的集合更好呢?

EN

回答 2

Stack Overflow用户

发布于 2014-02-03 12:45:16

我对Redis没有丰富的经验,但我可以告诉你一些关于MongoDB的事情。

NOSQL运动更多的是关于可伸缩性。因此,如果您想将其保存在一个集合中,那么选择将非常有限。大多数NOSQL DB会将其分解为分片的副本集。你可以在你计划在MongoDB上阅读here .If,因为它是分片和复制的,所以写起来可能会很快。如果您不介意数据有点陈旧(取决于分片中主服务器和辅助服务器之间的延迟),那么MongoDB可能是一个很好的选择。

通常,您可以向主数据库写入数据,然后从次要数据库读取数据,这与您当前的场景不同,我猜所有事情都发生在一个数据库上。对于您的操作来说,这应该是显著的性能提升,但具体有多大取决于细节。

票数 1
EN

Stack Overflow用户

发布于 2014-02-04 11:12:44

实际上,你可以选择both或者两者都不:)我仍然不明白你的需求是什么,最重要的是你当前的数据量和预期的增长模式,也不知道你除了实时获得统计数据外,还想从中得到什么。我也不太明白你是打算完全取代MySQL,还是打算在它上面/旁边构建。

我绝对同意150秒对你的仪表板来说不是一个可接受的响应时间,但在深入到叉车操作之前,我建议你应该考虑一种更简单的方法,比如只将你的实时统计计数器保存在合适的数据存储中(例如Redis;)。

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

https://stackoverflow.com/questions/21519710

复制
相关文章

相似问题

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