前言:
MySQL與MongoDB都是開源的常用數(shù)據(jù)庫赊窥,但是MySQL是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,MongoDB則是非關(guān)系型數(shù)據(jù)庫,也叫文檔型數(shù)據(jù)庫乞而,是一種NoSQL的數(shù)據(jù)庫。它們各有各的優(yōu)點慢显,關(guān)鍵是看用在什么地方爪模。所以我們所熟知的那些SQL語句就不適用于MongoDB了,因為SQL語句是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言荚藻。
一屋灌、關(guān)系型數(shù)據(jù)庫-MySQL
1、在不同的引擎上有不同的存儲方式应狱。
2共郭、查詢語句是使用傳統(tǒng)的sql語句,擁有較為成熟的體系疾呻,成熟度很高除嘹。
3、開源數(shù)據(jù)庫的份額在不斷增加罐韩,mysql的份額頁在持續(xù)增長憾赁。
4、缺點就是在海量數(shù)據(jù)處理的時候效率會顯著變慢散吵。
二龙考、非關(guān)系型數(shù)據(jù)庫-MongoDB
非關(guān)系型數(shù)據(jù)庫(nosql ),屬于文檔型數(shù)據(jù)庫。先解釋一下文檔的數(shù)據(jù)庫矾睦,即可以存放xml晦款、json、bson類型系那個的數(shù)據(jù)枚冗。這些數(shù)據(jù)具備自述性缓溅,呈現(xiàn)分層的樹狀數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成赁温。
1坛怪、存儲方式:虛擬內(nèi)存+持久化淤齐。
2、查詢語句:是獨特的MongoDB的查詢方式袜匿。
3更啄、適合場景:事件的記錄,內(nèi)容管理或者博客平臺等等居灯。
4祭务、架構(gòu)特點:可以通過副本集,以及分片來實現(xiàn)高可用怪嫌。
5义锥、數(shù)據(jù)處理:數(shù)據(jù)是存儲在硬盤上的,只不過需要經(jīng)常讀取的數(shù)據(jù)會被加載到內(nèi)存中岩灭,將數(shù)據(jù)存儲在物理內(nèi)存中拌倍,從而達(dá)到高速讀寫。
6噪径、成熟度與廣泛度:新興數(shù)據(jù)庫贰拿,成熟度較低呀酸,Nosql數(shù)據(jù)庫中最為接近關(guān)系型數(shù)據(jù)庫萍程,比較完善的DB之一,適用人群不斷在增長蝠嘉。
三缴允、MongoDB優(yōu)勢與劣勢
優(yōu)勢:
1荚守、在適量級的內(nèi)存的MongoDB的性能是非常迅速的,它將熱數(shù)據(jù)存儲在物理內(nèi)存中练般,使得熱數(shù)據(jù)的讀寫變得十分快矗漾。
2、MongoDB的高可用和集群架構(gòu)擁有十分高的擴(kuò)展性薄料。
3敞贡、在副本集中,當(dāng)主庫遇到問題摄职,無法繼續(xù)提供服務(wù)的時候誊役,副本集將選舉一個新的主庫繼續(xù)提供服務(wù)。
4谷市、MongoDB的Bson和JSon格式的數(shù)據(jù)十分適合文檔格式的存儲與查詢蛔垢。
劣勢:
1、 不支持事務(wù)操作迫悠。MongoDB本身沒有自帶事務(wù)機(jī)制鹏漆,若需要在MongoDB中實現(xiàn)事務(wù)機(jī)制,需通過一個額外的表,從邏輯上自行實現(xiàn)事務(wù)艺玲。
2括蝠、 應(yīng)用經(jīng)驗少,由于NoSQL興起時間短饭聚,應(yīng)用經(jīng)驗相比關(guān)系型數(shù)據(jù)庫較少又跛。
3、MongoDB占用空間過大若治。
四、對比
數(shù)據(jù)庫 | MongoDB | MySQL |
---|---|---|
數(shù)據(jù)庫模型 | 非關(guān)系型 | 關(guān)系型 |
存儲方式 | 以類JSON的文檔的格式存儲 | 不同引擎有不同的存儲方式 |
查詢語句 | MongoDB查詢方式(類似JavaScript的函數(shù)) | SQL語句 |
數(shù)據(jù)處理方式 | 基于內(nèi)存感混,將熱數(shù)據(jù)存放在物理內(nèi)存中端幼,從而達(dá)到高速讀寫 | 不同引擎有自己的特點 |
成熟度 | 新興數(shù)據(jù)庫,成熟度較低 | 成熟度高 |
廣泛度 | NoSQL數(shù)據(jù)庫中弧满,比較完善且開源婆跑,使用人數(shù)在不斷增長 | 開源數(shù)據(jù)庫,市場份額不斷增長 |
事務(wù)性 | 僅支持單文檔事務(wù)操作庭呜,弱一致性 | 支持事務(wù)操作 |
占用空間 | 占用空間大 | 占用空間小 |
join操作 | MongoDB沒有join | MySQL支持join |
以上~