MySQL是關係型數據庫javascript
優點:java
在不一樣的引擎上有不一樣 的存儲方式。node
查詢語句是使用傳統的sql語句,擁有較爲成熟的體系,成熟度很高。mysql
開源數據庫的份額在不斷增長,mysql的份額頁在持續增加。redis
缺點:sql
在海量數據處理的時候效率會顯著變慢。mongodb
Mongodb是非關係型數據庫(nosql ),屬於文檔型數據庫數據庫
文檔是mongoDB中數據的基本單元,相似關係數據庫的行,多個鍵值對有序地放置在一塊兒即是文檔,語法有點相似javascript面向對象的查詢語言,它是一個面向集合的,模式自由的文檔型數據庫。json
存儲方式:虛擬內存+持久化。後端
查詢語句:是獨特的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來使用。 亦或是僅做日誌收集分析。