0

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

我的项目数据库是 mongoDB。

我想知道我的 mongoDB 中是否有 20 个集合,其中一个非常大。当我处理其他(较小的)集合时,我会看到性能影响吗?

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

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

谢谢。

4

1 回答 1

1

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

  1. 确保您的工作集适合内存。这意味着您的可用内存至少应超过您用于读取的索引的总大小。
  2. MongoDB v2.2 之后有数据库级别的写锁。这意味着在任何写操作期间,整个数据库都被锁定以供读取。因此,对于可能需要一段时间的单个集合的大批量插入,所有其他集合在批量插入期间都被锁定。因此,如果您将大型集合分离到一个单独的数据库中,您的关键优势将是对该集合的插入不会阻塞对其他数据库中集合的读取。

我建议首先确保您有足够的内存用于您的工作集,其次,如果您打算大量写入,我会将大型集合分离到一个单独的数据库中。

于 2013-08-18T10:34:41.683 回答