1. 程式人生 > >mangodb與mysql的區別

mangodb與mysql的區別

MySQL是關係型資料庫。

   優勢:

在不同的引擎上有不同 的儲存方式。

查詢語句是使用傳統的sql語句,擁有較為成熟的體系,成熟度很高。

開源資料庫的份額在不斷增加,mysql的份額頁在持續增長。

   缺點:

在海量資料處理的時候效率會顯著變慢。

Mongodb是非關係型資料庫(nosql ),屬於文件型資料庫。文件是mongoDB中資料的基本單元,類似關係資料庫的行,多個鍵值對有序地放置在一起便是文件,語法有點類似javascript面向物件的查詢語言,它是一個面向集合的,模式自由的文件型資料庫。

儲存方式:虛擬記憶體+持久化。

查詢語句:是獨特的Mongodb的查詢方式。

適合場景:事件的記錄,內容管理或者部落格平臺等等。

架構特點:可以通過副本集,以及分片來實現高可用。

資料處理:資料是儲存在硬碟上的,只不過需要經常讀取的資料會被載入到記憶體中,將資料儲存在實體記憶體中,從而達到高速讀寫。

成熟度與廣泛度:新興資料庫,成熟度較低,Nosql資料庫中最為接近關係型資料庫,比較完善的DB之一,適用人群不斷在增長。

優點:

快速!在適量級的記憶體的Mongodb的效能是非常迅速的,它將熱資料儲存在實體記憶體中,使得熱資料的讀寫變得十分快。高擴充套件性,儲存的資料格式是json格式!

缺點:

不支援事務,而且開發文件不是很完全,完善。


   Mysql和Mongodb主要應用場景

1.如果需要將mongodb作為後端db來代替mysql使用,即這裡mysql與mongodb 屬於平行級別,那麼,這樣的使用可能有以下幾種情況的考量: (1)mongodb所負責部分以文件形式儲存,能夠有較好的程式碼親和性,json格式的直接寫入方便。(如日誌之類) (2)從datamodels設計階段就將原子性考慮於其中,無需事務之類的輔助。開發用如nodejs之類的語言來進行開發,對開發比較方便。 (3)mongodb本身的failover機制,無需使用如MHA之類的方式實現。

2.將mongodb作為類似redis ,memcache來做快取db,為mysql提供服務,或是後端日誌收集分析。 考慮到mongodb屬於nosql型資料庫,sql語句與資料結構不如mysql那麼親和 ,也會有很多時候將mongodb做為輔助mysql而使用的類redis memcache 之類的快取db來使用。 亦或是僅作日誌收集分析。