MongoDB基礎知識
非關系型數據庫,有時也稱作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基礎知識