2011-04-04 71 views
3

這可能會在這裏(或其他地方)回答之前,但我一直在互聯網上混合/沒有意見。MongoDB的個人非分佈式工作

我從來沒有使用除SQL之外的任何其他數據庫,然後我遇到了NoSQL DB(特別是mongoDB)。我試了一下。我只是爲了好玩而這樣做,但是到處都有人說,當你在分佈式服務器上使用它時,它確實非常棒。 所以我想知道,如果它主要只在個人計算機上進行小項目和事情有什麼幫助(以不平凡的方式)?只有一臺服務器時有一些真正的優勢。

儘管使用MapReduce(以及與同伴談論d)會很酷,但是當用於在單個服務器上運行的小型項目時,這不是一種矯枉過正的行爲嗎?或者還有其他優點嗎?我需要一些清晰的想法。對不起,如果我在這裏聽起來天真。

可選:您使用過的某些示例會很棒。

謝謝。

+0

如果您選擇MongoDB,請注意其對32位系統的限制。 – Sergey 2011-04-04 09:57:05

回答

5

恕我直言,MongoDB完全適用於單個服務器/小型項目,並且它不是您只能用於「大數據」或多服務器項目的先決條件。

如果MongoDB解決了一個特定的需求,那麼在項目規模上並不重要,所以不要讓這個方面影響你。使用MapReduce可能會有點矯枉過正/如果您真的擁有低數據量並且只想做一些基本的聚合,可能會有點矯枉過正/這不是最好的方法 - 可以使用羣組操作員完成這些操作(目前它對於可以存儲多少數據有一些限制返回)。

所以我想我一般說的是,使用正確的工具來完成這項工作。在小型項目/單個PC上使用MongoDB沒有任何問題。如果像SQL Server這樣的RDBMS更適合你的項目,那就使用它。如果像MongoDB這樣的NoSQL技術適合,那就使用它。

4

+1 AdaTheDev - 但也有3件更多的事情,這裏要注意:

  1. 耐用性:從1.8版本開始,MongoDB的具有--journal啓動時,單臺服務器的耐用性,所以現在它更適用於單服務器場景
  2. 選擇一個NoSQL DB比說RDBMS不應該由單個或多個服務器設置決定,而是基於數據庫建模。例如參見12 - 在MongoDB中存儲類似註釋的結構很容易。
  3. MapReduce:同樣,它依賴於數據建模和需要發生的操作/計算。根據您對數據建模的方式,您可能需要也可能不需要使用MapReduce。
+0

+1主要用於單服務器耐用性:) – AdaTheDev 2011-04-04 09:16:16