資料儲存結構

2021-07-04 14:45:51 字數 951 閱讀 5821

mongodb 對國內使用者來說比較新, 它就像是乙個黑盒子,但是如果對於它內部的資料儲存了解多一些的話,那麼將會很快的理解和駕馭 mongodb,讓它發揮它更大的作用。

mongodb 的預設資料目錄是/data/db,它負責儲存所有的 mongodb 的資料檔案。在 mongodb內部,每個資料庫都包含乙個.ns 檔案和一些資料檔案,而且這些資料檔案會隨著資料量的增加而變得越來越多。所以如果系統中有乙個叫做 foo 的資料庫,那麼構成 foo 這個資料庫的檔案就會由 foo.ns, foo.0, foo.1, foo.2 等等組成,具體如下:

-rw------- 1 root root 16777216 04-21 17:30 foo.0

-rw------- 1 root root 33554432 04-21 17:30 foo.1

-rw------- 1 root root 67108864 04-21 17:30 foo.2

-rw------- 1 root root 16777216 04-21 17:30 foo.ns

mongodb 內部有預分配空間的機制,每個預分配的檔案都用 0 進行填充,由於有了這個機

制, mongodb 始終保持額外的空間和空餘的資料檔案,從而有效避免了由於資料暴增而帶來

的磁碟壓力過大的問題。

由於表中資料量的增加,資料檔案每新分配一次,它的大小都會是上乙個資料檔案大小的 2

倍,每個資料檔案最大 2g。這樣的機制有利於防止較小的資料庫浪費過多的磁碟空間,同

時又能保證較大的資料庫有相應的預留空間使用。

資料庫的每張表都對應乙個命名空間,每個索引也有對應的命名空間。這些命名空間的元數

據都集中在*.ns 檔案中。

在下圖中, foo 這個資料庫包含 3 個檔案用於儲存表和索引資料, foo.2 檔案屬於預分配的空

檔案。 foo.0 和 foo.1 這兩個資料檔案被分為了相應的盤區對應不同的名字空間。

資料結構 儲存結構

順序儲存 鏈式儲存 索引儲存 雜湊儲存 順序儲存是所有的節點存放在一塊連續的儲存區域中,用儲存節點的位置來體現結點之間的邏輯關係的儲存方法 優點 節省空間,隨機儲存資料 缺點 資料刪除和新增需要移動節點,而且不利於查詢 鏈式儲存結構是指資料元素存放在任意的儲存單元中,儲存單元是可以連續的,也可以是不...

(資料結構)儲存結構

一 線性表 1 順序儲存結構ok typedef structsqlist 順序表的型別定義 2 鏈式儲存結構ok typedef struct lnodelnode,linklist 二 棧 1 順序棧儲存結構 typedef structsqstack 2 鏈式儲存結構ok typedef st...

ORACLE 資料儲存結構之邏輯儲存結構

資料塊 data blocks 資料塊是 oracle 邏輯儲存結構中的最小的邏輯單位,也是執行資料庫輸入輸出操作的最小儲存單位。oracle 資料存放在 oracle 資料塊 中,而不是 作業系統塊 中。通常 oracle 資料塊是作業系統塊的整數倍,如果作業系統快的大小為 2048b 並且ora...