mongoDB做了大量的收藏会影响其他收藏的表现吗?

时间:2013-08-18 08:42:52

标签: mongodb performance nosql

在我的应用程序中,我即将在数据库中保存一些文件。 我已经看到了关于是否保存文件系统\ db并选择将文件保存在数据库上的争论。

我的项目数据库是mongoDB。

我想知道我是否可以在我的mongoDB中说出20个集合, 而且其中一个非常大。 当我处理其他(不太大)的集合时,我会看到性能影响吗?

如果我应该将此集合与其他集合分开? (仅为这个庞大的集合创建另一个数据库)?

my-sql是否会受到同样的影响?

感谢。

1 个答案:

答案 0 :(得分:0)

这里有两个关键的考虑因素:

  1. 确保您的working set适合记忆。这意味着您的可用内存应至少超过您用于读取的索引的总大小。
  2. MongoDB在v2.2之后有一个database level write lock。这意味着在任何写入操作期间,整个数据库都会被锁定以进行读取。因此,对于可能需要一段时间的大型批量插入到单个集合中,所有其他集合在批量插入的持续时间内被锁定。因此,如果将大型集合分离为单独的数据库,则关键优势在于对该集合的插入不会阻止对其他数据库中的集合的读取。
  3. 我建议首先确保你的工作集有足够的内存,其次如果你打算写很多内容,我会把大集合分成一个单独的数据库。