2011-06-27 99 views
1

爲了用於我的項目,我一直在努力學習Mongodb一個星期。在我的項目中,我將存儲一個巨大的地理位置數據,我認爲Mongodb是最適合存儲這些信息的。另外,速度對我來說非常重要,Mongodb響應速度比Mysql快。在一個項目中同時使用Mongodb和Mysql

但是,我將對項目的某些部分使用一些連接,而且我不確定是否將用戶信息存儲在Mongodb中。我在編寫過程中聽到有些問題可能發生在mongodb上。我應該只使用mongodb與集合(而不是連接)還是兩者?

+0

「堅牢度」?我認爲好的語法會說「速度」。 – duffymo

+0

你太複雜了 – tetris

回答

3

在大多數情況下,我會建議爲一個項目選擇一個數據庫,如果該項目不是很大。在真正的大項目(或一般企業),I think長期組織將使用

  • RDBMS的組合爲高事務的OLTP
  • 的NoSQL
  • 一個datawarehousing/BI項目

但對於更合理範圍的東西,只需選擇那個用例的核心,然後將其用於一切。

在mongodb中存儲用戶數據的IMO很好 - 您可以對單個BSON文檔執行原子操作,以便像「以原子方式分配此用戶名」這樣的操作是可行的。通過重做日誌(--journal)(v1.8 +),複製,slavedelayed複製,可以獲得相當高的數據安全性 - 與紙上的其他db產品一樣高。反對安全的主要觀點是產品是新舊軟件總是比較安全的。

如果您需要執行非常複雜的ACID事務(如會計),請使用RDBMS。

此外,如果您需要進行大量報告,那麼當前的mysql可能會更好,特別是如果數據集適合一臺服務器。 SQL GROUP BY語句非常強大。

3

您不會在MongoDB和MySQL之間加入。

我不確定我是否同意你所有的陳述。相對速度與您的使用案例是最好的基準。

你真正需要了解的是什麼,兩個數據庫的相對優勢和劣勢分別是:

  • MySQL支持的關係模型,集合和酸; MongoDB不。
  • MongoDB更適合於能夠承擔ACID和交易的基於文檔的問題。

這些應該是您選擇的基礎。

1

MongoDB有一些很好的功能來支持地理位置工作。然而,它不一定比MySQL更快。有很多基準測試表明,MySQL在很多情況下都勝過MongoDB(例如http://mysqlha.blogspot.com/2010/09/mysql-versus-mongodb-yet-another-silly.html)。

話雖如此,我還沒有在寫作期間MongoDB丟失信息的問題。我建議如果你想使用MongoDB,你也可以使用if,以避免必須跨數據庫「關聯」,然後只有在需要時纔將用戶遷移到MySQL。

+2

在大多數簡單的CRUD中,調優的MySQL將優於MongoDB?這是一個大膽的陳述,不需要知道插入類型,索引,查詢,數據集的大小,機器上RAM的數量等等。只有基準測試可以以這種或那種方式證明這樣的陳述。 –

相關問題