我应该在单独的服务器上拆分NoSQL数据库吗?

时间:2011-12-03 10:33:26

标签: mongodb couchdb nosql

我们仍处于确定是否使用RDBMS或NoSQL的早期阶段。

感兴趣的领域之一是如果我们使用NoSQL(可能是CouchDB,尽管可能是MongoDB),将不同服务器上的NoSQL数据库分开比NoSQL服务器的一个实例更好吗?

我们将构建一个文件管理系统,将某些文件/视频分组到不同的服务器上。帐户相关文件/视频将存储在帐户服务器等。要查询帐户相关文件,我们很可能会在帐户服务器上搜索数据库。

我可以在将来看到有人会说“为什么我无法在所有服务器上搜索某种文件或视频”?

显然,拥有一个数据库会更好。但是,除了查询服务器的http请求的延迟之外,是否有更好的方法来实现这一点或者拥有大型数据库的利弊?

JD

1 个答案:

答案 0 :(得分:2)

(大多数)NoSQL产品的想法是它们提供水平可伸缩性。这意味着您可以在几十台服务器上使用单个逻辑实例。例如,在MongoDB中,您可以使用auto-sharding。对于您的程序,这是完全透明的:您的代码(几乎)与单个数据库服务器使用的代码相同,但数据驻留在5台服务器上。

有许多优点:你有一个管理数据库的中心位置,你可以在必要时查询所有数据库,你不需要在代码中使用多个数据库连接,db会自动平衡这些集合需要平衡的地图,如果查询允许,map / reduce操作可以并行运行等等。

对我来说最重要的是:没有太多的管理开销,而且您不必过多考虑这个现在,因为您可以稍后添加自动分片。

我不会尝试自我分片,因为它正在重新发明轮子,这也不容易。这首先是NoSQL的关键驱动因素之一。