菜鳥的mongoDB學習---(一)安裝與簡介

來源:互聯網
上載者:User

標籤:mongodb   nosql資料庫   分散式運算   資料存放區   可擴充   

什麼是NoSQL?

NoSQL,指的是非關係型的資料庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱。

NoSQL用於超大規模資料的儲存。(例如Google或Facebook每天為他們的使用者收集萬億位元的資料)。這些類型的資料存放區不需要固定的模式,無需多餘操作就可以橫向擴充。

為什麼使用NoSQL ?

今天我們可以通過第三方平台(如:Google,Facebook等)可以很容易的訪問和抓取資料。使用者的個人資訊,社交網路,地理位置,使用者產生的資料和使用者動作記錄已經成倍的增加。我們如果要對這些使用者資料進行挖掘,那SQL資料庫已經不適合這些應用了, NoSQL資料庫的發展也卻能很好的處理這些大的資料。

RDBMS vs NoSQL

RDBMS
- 高度組織化結構化資料
- 結構化查詢語言 (SQL)(SQL) (SQL)
- 資料和關係都儲存在單獨的表中。
- 資料操縱語言,資料定義語言 (Data Definition Language)
- 嚴格的一致性
- 基礎事務

NoSQL
- 代表著不僅僅是SQL
- 沒有聲明性查詢語言
- 沒有預定義的模式
-鍵 - 值對儲存,列儲存,文檔儲存,圖形資料庫
- 最終一致性,而非ACID屬性
- 非結構化和不可預知的資料
- CAP定理
- 高效能,高可用性和延展性

NoSQL的優點/缺點

優點:

  • - 高可擴充性
  • - 分散式運算
  • - 低成本
  • - 架構的靈活性,半結構化資料
  • - 沒有複雜的關係

缺點:

  • - 沒有標準化
  • - 有限的查詢功能(到目前為止)
  • - 最終一致是不直觀的程式

ACID vs BASE
ACID BASE
原子性(Atomicity) 基本可用(Basically Available)
一致性(Consistency) 軟狀態/柔性事務(Soft state)
隔離性(Isolation) 最終一致性 (Eventual consistency)
持久性 (Durable)


什麼是MongoDB ?

MongoDB 是由C++語言編寫的開來源資料庫系統。

在高負載的情況下,添加更多的節點,可以保證伺服器效能。

MongoDB 旨在為WEB應用提供可擴充的高效能資料儲存解決方案。


MongoDB 將資料存放區為一個文檔。MongoDB是一個基於分布式檔案儲存體的資料庫。

FirstName="Arun", Address="St. Xavier‘s Road", Spouse=[{Name:"Kiran"}], Children=[{Name:"Rihit", Age:8}].
FirstName="Sameer",Address="8 Gandhi Road".

注意:以上資料有兩個不同的文檔(以"."分隔)。以這種方式儲存資料即為檔案儲存體的資料庫。 MongoDB是一個面向文檔的資料庫。

主要特點
  • MongoDB的提供了一個面向文檔儲存,操作起來比較簡單和容易。
  • 你可以在MongoDB記錄中設定任何屬性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")來實現更快的排序。
  • 你可以通過本地或者網路建立資料鏡像,這使得MongoDB有更強的擴充性。
  • 如果負載的增加(需要更多的儲存空間和更強的處理能力) ,它可以分布在電腦網路中的其他節點上這就是所謂的分區。
  • Mongo支援豐富的查詢運算式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
  • MongoDb 使用update()命令可以實現替換完成的文檔(資料)或者一些指定的資料欄位 。
  • Mongodb中的Map/reduce主要是用來對資料進行批量處理和彙總操作。
  • Map和Reduce。Map函數調用emit(key,value)遍曆集合中所有的記錄,將key與value傳給Reduce函數進行處理。
  • Map函數和Reduce函數是使用Javascript編寫的,並可以通過db.runCommand或mapreduce命令來執行MapReduce操作。
  • GridFS是MongoDB中的一個內建功能,可以用於存放大量小檔案。
  • MongoDB允許在服務端執行指令碼,可以用Javascript編寫某個函數,直接在服務端執行,也可以把函數的定義儲存在服務端,下次直接調用即可。
  • MongoDB支援各種程式設計語言:RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。
  • MongoDB安裝簡單。


MongoDB 下載

MongoDB提供了可用於32位和64位系統的先行編譯二進位包,你可以從MongoDB官網下載安裝,MongoDB先行編譯二進位包:

http://www.mongodb.org/downloads


具體安裝的話自我感覺還是ubuntu比較簡單,也比較方便,windows也不難,下載之後解壓雙擊安裝即可,可是還是得看一下windows下的命令列,之後的測試環境基本都是ubuntu 12.04。

直接命令列輸入sudo apt-get install mongodb。

當然你也可以安裝munin監控mongodb的運行情況,和可視化介面的rockmongo來實現簡單的操作。

菜鳥的mongoDB學習---(一)安裝與簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.