這兩天簡單學習了一下MongoDB數據庫,屬于NoSQL類型數據庫的一種,先簡單宏觀的看一下NoSQL的相關知識和MongoDB的基礎知識。 NoSQL是Not Only SQL的縮寫,它指的是非關系型數據庫,即有別于Oracle,mysql,sqlserver等常用的關系型數據庫。它是以key-value形式
這兩天簡單學習了一下MongoDB數據庫,屬于NoSQL類型數據庫的一種,先簡單宏觀的看一下NoSQL的相關知識和MongoDB的基礎知識。
NoSQL是Not Only SQL的縮寫,它指的是非關系型數據庫,即有別于Oracle,mysql,sqlserver等常用的關系型數據庫。它是以key-value形式存在,即我們熟悉的JSON數據形式。
發展:NoSQL是隨著互聯網Web2.0網站的興起,傳統的關系數據庫在應付web2.0網站,特別是超大規模數據量和高并發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而NoSQL也就是為了應付這些問題而出現,并不斷發展著。最開始是google公司的Bigtable,淘寶數據平臺的Tair,視覺中國網站的MongoDB等都代表NoSQL的不斷發展。
NoSQL發展迅速的原因:隨著互聯網的不斷發展,各種類型的應用層出不窮,所以導致在這個云計算的時代,對技術提出了更多的需求。雖然關系型數據庫已經在業界的數據存儲方面占據不可動搖的地位,但是由于其天生的幾個限制,使其難以滿足以上的幾個需求:擴展困難,讀寫慢,成本高,有限的支撐容量。但是NoSQL關注的對數據高并發讀寫和對海量數據的存儲等,與關系型數據庫相比,它們在架構和數據模型方面做了削弱,而在擴展和并發等方面做了增強突出。
特點:非關系型的,分布式的,開源的,水平可擴展的。
優點:擴展簡單,讀寫更加快速,成本更加低廉,靈活的數據模型。
不足:不提供的對SQL的支持,支持的特性不夠豐富,現在的產品相比關系型數據庫不夠成熟。
總而言之NoSQL的出現是緊隨時代的步伐——大數據,云計算而誕生,并不斷發展的,是處在一個成長中的。下邊簡單看一下它的比較成熟的一個產品MongoDB的簡單介紹。
MongoDB 的名稱取自“humongous” (巨大的) 的中間部分,足見mongodb 的宗旨在處理大量數據上面。是一個可擴展、高性能的下一代數據庫,由 C++語言編寫,旨在為web 應用提供可擴展的高性能數據存儲解決方案。
Mongo DB很好的實現了面向對象的思想(OO思想),在Mongo DB中每一條記錄都是一個Document對象。MongoDB最大的優勢在于所有的數據持久操作都無需開發人員手動編寫SQL語句,直接調用方法就可以輕松的實現CRUD操作。
好,看一下它有什么特性,根據這些特性我們可以選擇什么時候用它:高性能、易部署、易使用,存儲數據非常方便是它的主要特點:
2模式自由,支持動態查詢、完全索引,可輕易查詢文檔中內嵌的對象及數組
2面向文檔存儲,易存儲對象類型的數據, 包括文檔內嵌對象及數組
2高效的數據存儲,支持二進制數據及大型對象(如照片和視頻)
2支持復制和故障恢復;提供了主-從、主-主模式的數據復制及服務器之間的數據復制
2自動分片以支持云級別的伸縮性,支持水平的數據庫集群,可動態添加額外的服務器
適用場景:
2適合作為信息基礎設施的持久化緩存層
2適合實時的插入,更新與查詢,并具備應用程序實時數據存儲所需的復制及高度伸縮性
2Mongo 的 BSON 數據格式非常適合文檔化格式的存儲及查詢
2適合由數十或數百臺服務器組成的數據庫。因為 Mongo 已經包含了對 MapReduce 引擎的內置支持
不適用場景:
2要求高度事務性的系統
2傳統的商業智能應用
2 復雜的跨文檔(表)級聯查詢
綜上,我們對NoSQL,MongoDB有了個宏觀的理解,知道NoSQL出現并不斷發展狀態的原因,MongoDB的使用范圍,長處短處等,這對于我們對此款軟件的認識非常重要,關系到我們技術選擇的一關。就是認識人一樣,我們是從整體容貌開始,然后隨著不斷的深入,在觀察他們細節外貌,行為方式,生活習慣等等,學習一門技術也是這樣,先了解他了,然后在開始一點點的學習技術,并隨著使用次數的增多,不斷的加深理解,不斷的升華。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com