MongoDB學習筆記(1)–瞭解MongoDB

來源:互聯網
上載者:User
MongoDB是一個開源的、無模式的文檔型資料庫,是當前流行的NOSQL類型資料庫的一種(非關係型資料庫)

MongoDB的資料結構非常鬆散,是類似json的bjson格式,同時支援對資料建立索引。是一個面向集合的,模式自由的文檔型資料庫。

 

1.面向集合

意思是資料被分組儲存在資料集合中,被稱為一個集合

2.模式自由

意味著對於儲存在MongoDB 資料庫中的檔案,我們不需要知道它的任何結構定義。提了這 麼多次"無模式"或"模式自由",它到是個什麼概念呢?例如,下面兩個記錄可以存在於同一 個集合裡面:  

{"welcome" : "Beijing"} {"age" : 25}

 

特點: 

  面向集合儲存,易於儲存物件類型的資料 

 模式自由   支援動態查詢   支援完全索引,包含內部對象   支援查詢   支援複製和故障恢複   使用高效的位元據儲存,包括大型物件(如視頻等)   自動處理片段,以支援雲端運算層次的擴充性   檔案儲存體格式為BSON(一種JSON的擴充)

 

體繫結構:

MongoDB 中一系列物理檔案(資料檔案,記錄檔等) 

MongoDB 的文檔(document),相當於關聯式資料庫中的一行記錄。 

 多個文檔組成一個集合(collection),相當於關聯式資料庫的表。 

多個集合(collection),邏輯上組織在一起,就是資料庫(database) 

資料存放區結構:

在MongoDB 內部,每個資料庫都包含一個.ns 檔案和一些資料檔案,而且這些資料檔案會隨著資料量的 增加而變得越來越多。所以如果系統中有一個叫做 foo的資料庫,那麼構成foo這個資料庫 的檔案就會由foo.ns,foo.0,foo.1,foo.2 等等組成 

 MongoDB 內部有預分配空間的機制,每個預分配的檔案都用 0 進行填充,由於有了這個機制, MongoDB始終保持額外的空間和空餘的資料檔案,從而有效避免了由於資料暴增而帶來的磁碟壓力過大的問題。

 由於表中資料量的增加,資料檔案每新分配一次,它的大小都會是上一個資料檔案大小的2 倍,每個資料檔案最大 2G。這樣的機制有利於防止較小的資料庫浪費過多的磁碟空間,同 時又能保證較大的資料庫有相應的預留空間使用。

資料庫的每張表都對應一個命名空間,每個索引也有對應的命名空間。這些命名空間的元數 據都集中在*.ns檔案中。 

需要注意的命名空間:$freelist,這個命名空間用於記錄不再使用 的盤區(被刪除的 Collection 或索引)。每當命名空間需要分配新的盤區的時候,都會先查 看$freelist是否有大小合適的盤區可以使用,這樣就回收閒置磁碟空間。
  

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.