innodb表空間儲存結構
儲存結構
*Innodb的邏輯儲存結構如圖所示:
其空間管理由段,區和頁構成。段包括葉子節點段,即所有索引的葉子節點都儲存在這個段裡,葉子節點儲存資料(次級索引是主鍵)和鍵值,這可以方便管理並且減少隨機io;還包括非葉子節點,儲存的是指向另外節點的指標和鍵值;回滾段儲存的是每個表的undo日誌(具體分析可看redo&undo日誌解析)。
區的大小固定為1M,不過當一個單獨表空間剛申請時,僅有96kb,只有用完這些空間才會分配一整塊區。
頁預設為16kb,innodb儲存引擎中常見的頁有資料頁,undo頁,系統頁,事務資料頁,bitmap頁等。
行記錄格式一般為兩種,一種compact,包括變長的列長度表,如果該列長度小於255位元組,則該列長度用1位元組表示(剛好最大值255),大於則2位元組(varchar最長65535bytes,實際最多為65532位元組),隨後是null標記位如果該行有null值則置為1,隨後是5位元組記錄頭,其中包含了是否被刪除的標記位,索引堆中排序序號,下一條記錄位置等資訊。是否被刪除主要是用於多版本控制。隨後的即為各種列資料,其中還包含兩個隱藏列:事務ID列用於多版本控制,回滾指標列用於事務。另一種是redundant,跟compact的區別是沒有null標記位,記錄頭為6位元組,多了一個n_fields表明有多少列,一共10位最多1023列。當行記錄溢位時(超過一頁的大小),會把記錄中的長位元組列轉換為blob頁單獨儲存,該記錄中列的位置儲存指向blob頁的指標。
頁的頭部儲存的比較重要的資料有:儲存了checksum,用來校驗頁資料是否正確;LSN,主要用在崩潰恢復時,該頁redo記錄的LSN跟該頁的LSN比較,如果該頁的LSN要大那麼就不對該頁做redo了避免重複恢復;還儲存了前一個頁和後一個頁的指標,實質應該是頁偏移,因為最小單位是頁;儲存了該頁在的頁偏移值;儲存了頁中第一條記錄的指標;以及儲存了一個最小記錄(鍵值比該頁中任何都要小)和一個最大記錄(鍵值比任何一個都大);儲存了最大事務id,在次級索引覆蓋索引查詢時可以迅速判斷整頁是否都可以被看見(read view判斷)。可以看出頁之間是雙向連結串列連線(儘管可能並不是物理位置相鄰)並且頁中記錄也是單向連結串列連線。
相關文章
- InnoDB的邏輯儲存結構是什麼,表空間組成包括哪些?
- InnoDB記錄儲存結構
- Configure innodb 表空間
- MySQL的varchar儲存原理:InnoDB記錄儲存結構MySql
- MySQLInnoDB儲存引擎(一):精談innodb的儲存結構MySql儲存引擎
- MySQL InnoDB儲存引擎體系結構MySql儲存引擎
- PG的物理儲存結構、版本控制、空間回收
- MySQL InnoDB表空間加密MySql加密
- Innodb:Undo 表空間巨大
- MySQL-07.InnoDB資料儲存結構MySql
- MySQL提升筆記(4)InnoDB儲存結構MySql筆記
- MySQL InnoDB Undo表空間配置MySql
- MySQL InnoDB臨時表空間配置MySql
- Mysql-Innodb : 從一個位元組到整個資料庫表瞭解物理儲存結構和邏輯儲存結構MySql資料庫
- mysql儲存引擎InnoDB詳解,從底層看清InnoDB資料結構MySql儲存引擎資料結構
- 多名稱空間結合cgroup保障儲存QoS
- MySQL 增加InnoDB系統表空間大小MySql
- MySQL InnoDB File-Per-Table表空間MySql
- 【TABLESPACE】Oracle 表空間結構說明Oracle
- 《MySQL 基礎篇》十二:InnoDB 儲存引擎的資料結構MySql儲存引擎資料結構
- 從一條資料說起——InnoDB儲存資料結構資料結構
- MySQL innodb表使用表空間物理檔案複製表MySql
- 儲存結構
- Innodb 下null '' ' '的儲存表現的不同Null
- 線性表之順序儲存結構
- 線性表之鏈式儲存結構
- MySQL 減少InnoDB系統表空間的大小MySql
- MySQL InnoDB儲存引擎MySql儲存引擎
- JanusGraph -- 儲存結構
- CentOS 儲存結構CentOS
- 11 線性表的順序儲存結構
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- Synology群暉NAS儲存正確建立儲存池和儲存空間的方法
- MySQL高階10-InnoDB引擎儲存架構MySql架構
- 總結MySQL儲存引擎MyISAM與InnoDB區別MySql儲存引擎
- MySQL InnoDB系統表空間資料檔案配置MySql
- InnoDB儲存引擎簡介儲存引擎
- 16、表空間 建立表空間