2013-08-18 50 views
0

在我的應用程序中,我將要在數據庫上保存一些文件。 我已經看到了有關是否保存在文件系統\ db並選擇將文件保存在數據庫上的爭論。mongoDB做了一個巨大的集合影響其他集合的性能?

我的項目數據庫是mongoDB。

我想知道我是否可以在我的mongoDB中說20個系列, ,而其中的一個非常大。 當我工作在其他(較小的)集合上時,我會看到性能影響嗎?

如果那麼我應該將這個集合與其他集合分開嗎? (爲這個龐大的集合單獨創建另一個數據庫)?

my-sql是否受到相同的影響?

謝謝。

+0

這將很大程度上取決於硬件的可用性,對數據庫的估計讀取/寫入,IO吞吐量,文件的大小等。通過基準測試,您的問題的最佳答案是...... – kmfk

回答

0

這裏有兩個關鍵因素:

  1. 確保您的working set適合在內存中。這將意味着您的可用內存應該至少超過您用於讀取的索引的總大小。
  2. MongoDB在v2.2之後有database level write lock。這意味着在任何寫入操作期間,整個數據庫都被鎖定以進行讀取。因此,對於大量批量插入到可能需要一段時間的單個集合中,所有其他集合在批量插入期間都被鎖定。因此,如果將大集合分隔爲單獨的數據庫,那麼您的關鍵優勢是對該集合的插入不會阻止讀取其他數據庫中的集合。

我建議首先確保您有足夠的內存供您的工作集使用,其次我會將大集合分隔成一個單獨的數據庫,如果您打算將其寫入很多。

相關問題