MongoDB
業務應用場景
傳統的關系數據庫(如MySQL),在數據庫操作的 三高 需求以及對web2.0 的網站需求面前,顯得力不從心。
解釋 "三高" 需求:
- High Performance: 對數據庫高并發讀寫的需求
- High Storage:對海量數據的高效率存儲和訪問的需求
- High Scalability && High Availability:對數據庫的高可擴展性和高可用性的需求
具體的應用場景,如:
- 社交場景,使用MongoDB 存儲用戶信息,以及用戶發表的朋友圈信息,通過地理位置索引實現附近的人,地點等功能
- 游戲場景,使用MongoDB 存儲游戲用戶信息,用戶的裝備,積分等直接以內嵌文檔的形式存儲,方便查詢,高效率存儲和訪問
- 物流場景,使用MongoDB 存儲訂單信息,訂單狀態在運送過程中會不斷更新,以MongoDB 內嵌數組的形式來存儲,一次查詢就能將訂單所有的變更讀取出來
- 物聯網場景,使用MongoDB存儲所有接入的智能設備信息,以及設備匯報的日志信息,對這些進行多維度的分析
- 視頻直播,使用MongoDB存儲用戶信息,點贊,互動信息等。
這些場景中,數據操作方面的共同特點是:
1.數據量大
2.寫入操作頻繁(讀寫都很頻繁)
3.價值較低的數據,對事物性要求不高
對于這樣的數據,我們更適合使用MongoDB 來實現數據的存儲
什么時候選擇MongoDB?
在架構選型上,除了上述三個特點外,如果你還猶豫是否要選擇它,可以考慮以下一些問題:
1.應用不需要事物及復雜的join支持
2.新應用,需求會變,數據模型無法確定,想快速迭代開發
3.應用需要2000-3000 以上的讀寫QPS
4.應用需要TB甚至PB 級別數據存儲
5.應用發現迅速,需要快速水平擴展
6.應用要求存儲的數據不丟失
7.應用需要99.999%高可用
8.應用需要大量的地理位置查詢,文本查詢
如果上述有1個符合,可以考慮MongoDB,2個及以上符合,選擇MongoDB絕對不會后悔
MongoDB 簡介
MongoDB 是一個開源、高性能、無模式的文檔型數據庫,當時的設計就是用于簡化開發和方便擴展,是NoSQL 數據庫產中的一種,是最像關系型數據庫(Mysql)的非關系型數據庫
它支持的數據結構非常松散,是一種類似于JSON的格式叫BSON,所以它既可以存儲比較復雜的數據類型,又相當的靈活
MongoDB中的記錄是一個文檔,它是一個由字段和值對(filed:value) 組成的數據結構。MongoDB 文檔類似于JSON對象,即一個文檔認為就是一個對象。字段的數據類型是字符型,它的值除了使用基本的一些類型外,還可以包括其他文檔、普通數據和文檔數組
體系結構
MySQL 和 MongoDB 對比:

本文來自博客園,作者:chuangzhou,轉載請注明原文鏈接:http://www.rzrgm.cn/czzz/p/19127739

浙公網安備 33010602011771號