1

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

我正在构建一个应用程序,该应用程序将帮助供应商通过根据店面的库存/购买记录提供战略性报价来竞争以获得客户。

该应用程序的一方面是供商店所有者查看提供的优惠、网络等。我使用标准的 php/MySQL 设置来实现这一点。

我的问题是关于库存记录的。我们几乎立即在这里谈论数百万条记录。我使用的示例数据是在一两年内汇总了他们的四个经理(他们有几十个),它有超过 500k 行和大约 30 列或更多列。当我们与所有经理一起获得数十家商店时,这将是巨大的,至少与我迄今为止合作过的任何商店相比。

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

绝对大小是使用 mongo 之类的好理由吗?或者更多的是数据的布局方式/数据组成的问题?还是我没有考虑的其他元素?

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

谢谢

4

1 回答 1

2

答案...

问:庞大的尺寸是使用 mongo 之类的好理由吗?

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

问:或者更多的是数据如何布局/由什么组成的问题?

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

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

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


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

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

于 2013-03-03T22:07:58.493 回答