1. 程式人生 > >MongoDB基礎知識

MongoDB基礎知識

ja

NoSQL是什麽?

非關系型數據庫,有時也稱作Not Only SQL的縮寫,是對不同於傳統的關系型數據庫的數據庫管理系統的統稱


NoSQL的優勢

1、高擴展性

2、高並發性,大數據下讀寫能力較強

3、分布式計算

4、處理海量數據

5、沒有復雜的關系


NoSQL數據庫四大家族

列存儲:Hbase

鍵值(Key-Value)存儲:Redis

圖像存儲:Neo4J

文檔存儲 :MongoDB

MongoDB 將數據存儲為一個文檔,數據結構由鍵值(name=>value)對組成。MongoDB 文檔類似於JSON對象。字段值可以包含其他文檔,數組及文檔數組。


MongoDB和JSON、BSON

JSON:是存儲和交換文本信息的語法。類似 XML。JSON數據庫語句可以容易被解析。

BSON:二進制的JSON,JSON文檔的二進制編碼存儲格式。BSON有JSON沒有的數據類型:Date和BinData。MongoDB中document以BSON形式存放。


MongoDB文檔支持不同的數據類型


{
  name:"Jone Doe",
  title:"software developer", #字符串
  address:{
           street:"123 45th street"
   state:"new York"
   zipcode:10036
  
          },             #嵌套文檔
   expertise:["MongoDB","Python","Javascript"], #數組
   employee_number:320,       #×××
   location:[53.34,-6326]  #Geo-spatial
}
}


MongoDB的關鍵特性:

1、高性能

2、豐富的查詢語言

3、高可用性

副本集,自動故障轉移,數據冗余


技術分享圖片


4、水平可擴展性

5、支持多種存儲引擎

MMAPv1存儲引擎:<3.2 默認存儲引擎是MMAPv1

WirdeTiger存儲引擎:>=3.2 默認存儲引擎是WiredTiger

In-Memory存儲引擎:Changed in version 3.2.6

存儲引擎的比較

技術分享圖片


MongoDB的GridFS


GridFS

技術分享圖片



MongoDB與RDBMS數據結構邏輯對比

技術分享圖片


MongoDB實際應用場景舉例

遊戲場景

使用MongoDB存儲遊戲用戶信息,用戶的裝備、積分等直接以內嵌文檔的形式存儲,方便查詢、更新。

物流場景

使用MongoDB存儲訂單信息,訂單狀態在運送過程中會不斷更新,以MongoDB內嵌數組的形式來存儲,一次查詢就能將訂單所有的變更讀取出來。

社交場景

使用MongoDB存儲存儲用戶信息,以及用戶發表的朋友圈信息,通過地理位置索引實現附近的人、地點等功能


物聯網場景

使使用MongoDB存儲所有接入的智能設備信息,以及設備匯報的日誌信息,並對這些信息進行多維度的分析。

視頻直播

使用MongoDB存儲用戶信息、禮物信息等


MongoDB版本的選擇,現在建議用3.4的版本

MongoDB分企業版和社區版,社區版支持使用MongoDB ops manager


技術分享圖片


是否使用MongoDB

技術分享圖片


如果上述有1個 Yes,可以考慮 MongoDB,2個及以上的 Yes,選擇 MongoDB 絕不會後悔!!!


MongoDB基礎知識