mongo是否适合与MySQL一起使用?

时间:2013-03-03 03:59:53

标签: mysql database database-design nosql scalability

由于NDA,我无法详细讨论事情,但我希望对正在构建的系统进行概述可以帮助您帮助我做出有关数据库的决策。

我正在构建一个应用程序,通过根据店面库存/购买记录制作战略性优惠,帮助供应商竞争获得客户。

该应用程序的一个方面是让商店所有者看到提供的优惠,网络等。我已经得到了标准的php / MySQL设置。

我的问题是关于库存记录。我们几乎立即在这里谈论数百万条记录。我正在使用的样本数据是在一两年内汇总了他们的四位经理(他们有几十位),它有超过50万行,大约有30多列。当我们与所有经理一起获得数十家商店时,它将是巨大的,至少与我迄今为止所做的任何事情相比都是如此。

供应商将拥有产品的一面,他们可以在其中搜索这些记录并根据它制作有竞争力的报价。

纯粹的尺寸是使用像mongo这样的东西的好理由吗?或者更重要的是数据的布局方式/数据的组成方式?或者其他一些我不考虑的因素?

而且,如果不是mongo / nosql,那么还有一些其他的方法或技术,这些大型数据存储将受益于我使用(分片,亚马逊云数据库等)。

由于

1 个答案:

答案 0 :(得分:2)

答案......

问:这个庞大的尺寸是使用像mongo这样的东西的理由吗?

答:我想是的。 Mongo是从头开始建造的,规模庞大。您有副本集和分片,可以帮助您扩展。它们还具有确保您的数据存储在适当地理位置分布的数据中心的功能。

问:或者更重要的是数据的布局方式/组成方式?

答:Mongo是一个文档数据库,你是对的,数据模型会有所不同。您必须以非规范化的方式考虑数据而不是规范化。就像任何技术一样,将事物存储为文档也有利有弊。

一些优点:模式管理是轻而易举的。数据更自然地适合您应用程序中的对象。不必支付复杂/慢速连接的价格。

有些缺点:架构可能不一致 - 你必须管理它。重复数据,不管理意味着它可能变得不一致。


总的来说,我认为Mongo是处理这种规模的好选择。 Mongo有一个新的聚合框架,它为文档查询带来了大量的SQL概念。更容易进行复杂的查询。 Mongo也有map / reduce来运行你可能有的任何类型的查询。

每天使用Mongo大约一年之后,我非常喜欢它作为产品的支持以及设置和使用它的一般简易性。