2013-06-21 41 views
1

如果我不打算擁有大型(> 1000項)集合,並且已經很熟悉,那麼使用MongoDB作爲Node.js應用程序而不是傳統SQL數據庫(如MySQL)會有什麼好處嗎SQL?適用於小型數據集的MongoDB

+0

不是真的,沒有我能想到的 – Sammaye

+0

@Sammaye你在開玩笑嗎?整個數據模型是完全不同的,並且與node.js應用程序中的數據結構已經很接近 - 它有多少數據有什麼關係? –

+0

@AsyaKamsky在開發應用程序之外,不同的數據結構會產生明顯的差異嗎?就性能而言呢?我認爲他正在尋找真正的好處,如果他對SQL感到滿意,他將擁有一個ORM或將SQL平面結構形成到node.js結構中的東西,這使得MongoDB和SQL之間的應用程序方面差異很小。這意味着不同的數據結構並不像它看起來那麼有好處,因爲有了一些花哨的編程的SQL可以採取相同的行動,開發人員永遠不會知道。 – Sammaye

回答

6

MongoDB是基於模式的文檔數據庫。這意味着你可以插入一個JSON對象與其他嵌套對象。這可以使開發更容易,特別是對於原型開發。

對於一個小項目,爲什麼不呢?對於一個更大的項目,你應該做更多的研究。無論大小,無論如何不會傷害到研究。您想考慮應用程序如何使用數據庫(讀取vs寫入)以及MongoDB如何水平擴展,以及它如何處理故障。

有一個叫做CAP定理的東西定義了NoSQL數據庫。 MongoDB是CP。這visual guide顯示了不同數據庫之間的關係。什麼對你和你的申請最重要?

需要考慮的其他事情是,大多數NoSQL數據庫不符合ACID標準。如果你在InnoDB中使用MySQL,根據你的應用程序,這可能是一些重要的放棄。例如,transactions可能是你可能不想放棄的東西。

很多優點和缺點。最好問問自己的是:我獲得了什麼?我放棄了什麼?有很多事情,這取決於你的用例。

1

對於小規模應用程序,堅持簡單的dbms有很多原因。其中之一是提供MySQL的廉價託管服務的廣泛可用性。另一個是易於部署和維護。

當然,如果你正在學習使用MongoDB,那就去吧!

+0

我不知道維護部分等,我已經使用了兩次,實際上,一旦你掌握了基本的手段MongoDB更容易開發和管理真的很容易,主要的一點是可能的託管。 – Sammaye

相關問題