MongoDB和mysql的區別

一.什麼是MongoDB
MongoDB 是一個基於分佈式文件存儲的數據庫。
由 C++ 語言編寫,是一個開源數據庫系統。
旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。
MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。
MongoDB 文檔類似於 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
在高負載的情況下,添加更多的節點,可以保證服務器性能。
二.什麼是Mysql
MySQL 是一款安全、跨平臺、高效的,並與 PHP、Java 等主流編程語言緊密結合的數據庫系統。該數據庫系統是由瑞典的 MySQL
AB 公司開發、發佈並支持,由 MySQL 的初始開發人員 David Axmark 和 Michael Monty Widenius 於
1995 年建立的。
功能強大
支持跨平臺
運行速度快
支持面向對象
安全性高
成本低
支持各種開發語言
數據庫存儲容量大
支持強大的內置函數
三,區別
1.關係型數據庫(mysql) 與 非關係型數據庫(mongodb)的區別:

2.兩方的優缺點以及特性:
a1.關係型數據庫(mysql):
特性:

關係型數據庫是指採用了關係模型來組織數據的數據庫;
關係型數據庫的最大特點就是事務的一致性
簡單來說,關係模型指的就是二維表格模型,關係型數據庫就是由二維表及其之間的關聯組成的數據組織
優點:

容易理解;
使用方便;
易於維護;
支持SQL,可用於複雜的查詢
缺點:

爲了維護一執行需要消耗大量的性能,
影響讀寫
固定的表結構
高併發讀寫需求
海量數據的高效率讀寫
a2.非關係型數據庫(mongodb):
特性:

使用鍵值對存儲數據
分佈式
不支持ACID特性
非關係型數據庫嚴格上來說,不算是一種數據庫,應該是一種數據結構化存儲方法的集合
優點:

無需經過sql層的解析,讀寫性能高;
基於鍵值對,數據沒有耦合性,容易擴展;
存儲數據的格式,nosql使用key:val的形式,文檔的形式,圖片形式等等,而關係型數據庫則只支持基礎類型
缺點:

不提供sql支持,學習成本高
無事務處理,附加功能和報表支持也不好

MongoDB和MySQL的區別是什麼?

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佔用空間過大。


四、對比

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

以上~

推薦學習:《mysql視頻教程

 

 

 

 

參考:MongoDB和mysql的區別

參考:MongoDB和MySQL的區別是什麼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章