天天看點

mongoDB專題一

MongoDB不同于傳統關系型資料庫,它屬于noSQL資料庫。下面我們從為什麼,是什麼,怎麼用,安裝等友善講解MongoDB。

1. 為什麼要NoSQL

關系型資料庫難以克服的問題:

①高并發讀寫(資料庫事務的一緻性需求)

②海量資料的高效率存儲與通路(資料庫的寫實時性和讀實時性需求)

③高可擴充和高可用性(對複雜的SQL查詢,特别是多表關聯查詢的需求)

而NoSQL的特點是:①處理超大量的資料;②運作在便宜的PC伺服器叢集上;③打破性能瓶頸;④操作簡單;⑤開源支援

MongoDB是一個介于關系型資料庫與非關系型資料庫之間的産品,是非關系資料庫當中功能最豐富的,最像關系型資料庫的。他支援的資料結構非常松散,是類似于JSON的BSON格式,是以可以存儲比較複雜的資料類型。MongoDB最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似于關系資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。它是一個面向集合的,模式自由的文檔型資料庫。

2. MongoDB中的基本概念:

DB(庫)-資料庫

Collection(集合)-表

Document(文檔)-行

Field(字段)-列

Index(索引)-索引

PrimaryKey(主鍵)-主鍵

3. MongoDB的應用場景

①應用不需要事務及複雜Join支援

②新應用,需求會變,資料模型無法确定,想快速疊代開發

③應用需要2000-3000以上的讀寫QPS(更高也可以)

④應用需要TB甚至PB級别資料存儲

⑤應用發展迅速,需要能快速水準擴充

⑥應用要求存儲的資料不丢失

⑦應用需要99.999%高可用

⑧應用需要大量的地理位置查詢、文本查詢

滿足以上兩個條件,就可以考慮選擇MongoDB了。

MongoDB目前已經滲透到遊戲、物流、電商、内容管理、社交、物聯網、視訊直播等領域。

那什麼場景不能使用MongoDB呢?高度事務性系統(像金融等)。