MongoDB和MySQL的區別


前言:

MySQL與MongoDB都是開源的常用數據庫,但是MySQL是傳統的關系型數據庫,MongoDB則是非關系型數據庫,也叫文檔型數據庫,是一種NoSQL的數據庫。它們各有各的優點,關鍵是看用在什么地方。所以我們所熟知的那些SQL語句就不適用於MongoDB了,因為SQL語句是關系型數據庫的標准語言。


一、關系型數據庫-MySQL

1、在不同的引擎上有不同的存儲方式。
2、查詢語句是使用傳統的sql語句,擁有較為成熟的體系,成熟度很高。
3、開源數據庫的份額在不斷增加,mysql的份額頁在持續增長。
4、缺點就是在海量數據處理的時候效率會顯著變慢。


二、非關系型數據庫-MongoDB

非關系型數據庫(nosql ),屬於文檔型數據庫。先解釋一下文檔的數據庫,即可以存放xml、json、bson類型系那個的數據。這些數據具備自述性,呈現分層的樹狀數據結構。數據結構由鍵值(key=>value)對組成。

1、存儲方式:虛擬內存+持久化。
2、查詢語句:是獨特的MongoDB的查詢方式。
3、適合場景:事件的記錄,內容管理或者博客平台等等。
4、架構特點:可以通過副本集,以及分片來實現高可用。
5、數據處理:數據是存儲在硬盤上的,只不過需要經常讀取的數據會被加載到內存中,將數據存儲在物理內存中,從而達到高速讀寫。
6、成熟度與廣泛度:新興數據庫,成熟度較低,Nosql數據庫中最為接近關系型數據庫,比較完善的DB之一,適用人群不斷在增長。


三、MongoDB優勢與劣勢

優勢:
1、在適量級的內存的MongoDB的性能是非常迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快。
2、MongoDB的高可用和集群架構擁有十分高的擴展性。
3、在副本集中,當主庫遇到問題,無法繼續提供服務的時候,副本集將選舉一個新的主庫繼續提供服務。
4、MongoDB的Bson和JSon格式的數據十分適合文檔格式的存儲與查詢。
劣勢:
1、 不支持事務操作。MongoDB本身沒有自帶事務機制,若需要在MongoDB中實現事務機制,需通過一個額外的表,從邏輯上自行實現事務。
2、 應用經驗少,由於NoSQL興起時間短,應用經驗相比關系型數據庫較少。
3、MongoDB占用空間過大。


四、對比

數據庫 MongoDB MySQL
數據庫模型 非關系型 關系型
存儲方式 以類JSON的文檔的格式存儲 不同引擎有不同的存儲方式
查詢語句 MongoDB查詢方式(類似JavaScript的函數) SQL語句
數據處理方式 基於內存,將熱數據存放在物理內存中,從而達到高速讀寫 不同引擎有自己的特點
成熟度 新興數據庫,成熟度較低 成熟度高
廣泛度 NoSQL數據庫中,比較完善且開源,使用人數在不斷增長 開源數據庫,市場份額不斷增長
事務性 僅支持單文檔事務操作,弱一致性 支持事務操作
占用空間 占用空間大 占用空間小
join操作 MongoDB沒有join MySQL支持join

 


 

以上~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM