監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

數(shù)據(jù)庫存儲系統(tǒng)

申請免費試用、咨詢電話:400-8352-114

  數(shù)據(jù)庫的存儲結(jié)構(gòu)是這個模式的,即記錄是按照行存儲的,但是數(shù)據(jù)庫的讀取不是以行為單位,否則一次讀取只能處理一行,效率很低。因此數(shù)據(jù)庫,無論是讀一行,還是讀取多行,都是將這些行所在的頁進行加載。數(shù)據(jù)管理存儲空間的基本單位是頁(Page)

  頁可以存儲多個行記錄(Row) ,先是表空間(Tablespace),表空間包含段(segement),還存在區(qū)(Extent)。

數(shù)據(jù)庫.jpg

  這里泛普給您詳細介紹數(shù)據(jù)庫整體的存儲結(jié)構(gòu):

  1、段(Segment)

  段里面有多個區(qū),區(qū)在文件系統(tǒng)是一個連續(xù)的分片空間,不過在段中不要求區(qū)與區(qū)之間是分配單位,不同類型的數(shù)據(jù)庫對象以不同的段形式存在。 當我們創(chuàng)建數(shù)據(jù)表,索引的時候,就會創(chuàng)建對應的段,比如建表的時候,會自動創(chuàng)建表段,創(chuàng)建表索引的時候,會創(chuàng)建一個索引段。

  2、區(qū)(Extent)

  區(qū)是一個比頁高一個級別的存儲結(jié)構(gòu),一個區(qū)一般有64個里連續(xù)的頁,InnoDB 頁的默認大小是 16K, 索引一個區(qū)的大小是 64*16 = 1MB

  3、表空間(Tablespace )

  表空間是一個邏輯容器,表空間存儲的對象是段,在一個表空間中可以有多個段,一個段只能屬于一個表空間,數(shù)據(jù)庫可以有多個表空間,表空間從管理上劃分為系統(tǒng)表空間、用戶表空間、撤銷表空間、臨時表空間。

  4、oracle 中使用塊代表頁

  數(shù)據(jù)庫 IO 最小單位是頁,與數(shù)據(jù)庫相關(guān)的內(nèi)容會存在頁結(jié)構(gòu)中,數(shù)據(jù)頁包括7個部分,分別是文件頭(File Header),頁頭(Page Header),最大最小記錄(Inflimum+siprenum)、用戶記錄(User Records)、空閑空間(Free Space),頁目錄(Page Directory)和文件尾(File Tailer)。

  5、頁的存儲結(jié)構(gòu)

  頁主要分成3部分: 頭尾節(jié)點部分。數(shù)據(jù)記錄部分,索引部分。

  數(shù)據(jù)頁有兩個字段,分別是文件頭FIL_PAGE_PREV 和文件尾 FIL_PAGE_NEXT, 主要作用是指針,分別指向上一個數(shù)據(jù)和下一個數(shù)據(jù),連接起來相當于一個雙向鏈表。

  第二部分是記錄部分,最大最小記錄和用戶記錄部分占了頁結(jié)構(gòu)的主要空間。當新記錄插入的時候,會從空想空間分配用于存儲新記錄。

  第三部分是索引部分, 這部分是頁目錄,起到了記錄索引的作用。

數(shù)據(jù)庫1.jpg

  6、如何創(chuàng)建一個頁記錄?

  將索引的記錄分成幾組,這些記錄包括最小記錄和最大記錄,但是不包括已刪除記錄。

  第1組,也就是最小記錄所在的分組只有一個記錄; 最后一組,就是最大記錄所在的分組,會有1-8個記錄,其余的組數(shù)據(jù)在4-8條。

  在每個組最后一條記錄的頭信息中會存儲該組一共有多少條,作為 n_owned 字段。

  頁目錄用來存儲每組最后一條記錄的地址偏移量,這些地址偏移量會按照先后順序存儲起來,每組的地址偏移量稱為 slot ,每個槽相當于指針指向了不同組的最后一個記錄。

發(fā)布:2021-06-18 14:09    編輯:泛普軟件 · zhangshuyue    [打印此頁]    [關(guān)閉]