GaussDB(DWS)存儲(chǔ)系列之行存表

      網(wǎng)友投稿 1496 2025-04-01

      GaussDB(DWS)實(shí)時(shí)數(shù)倉(cāng)的數(shù)據(jù)都是存儲(chǔ)在非易失性的存儲(chǔ)設(shè)備上,本文從行存表的存儲(chǔ)結(jié)構(gòu)出發(fā),幫助大家更好的了解GaussDB(DWS)是怎么在物理磁盤(pán)上存儲(chǔ)數(shù)據(jù)的。

      行存表的數(shù)據(jù)文(表、索引、cudesc表等文件),被劃分為多個(gè)固定大小的page頁(yè)面(block),每個(gè)page頁(yè)面默認(rèn)大小為8K,頁(yè)面編號(hào)(block number)從0開(kāi)始計(jì)數(shù)。如果當(dāng)前page頁(yè)面已經(jīng)存滿,則在末尾會(huì)新增一個(gè)page,繼續(xù)存儲(chǔ)。

      GaussDB(DWS)存儲(chǔ)系列之行存表

      行存表的page頁(yè)面主要由page header(頁(yè)頭)、空閑空間、數(shù)據(jù)heap tuple組成,下圖展示了page頁(yè)頭各個(gè)字段的存儲(chǔ)信息:

      pd_lsn:本頁(yè)面最后一次變更所寫(xiě)入的xlog記錄對(duì)應(yīng)的lsn。

      pd_checksum:主要用于校驗(yàn)頁(yè)面的完整性,避免數(shù)據(jù)由于磁盤(pán)、IO等原因?qū)е庐惓!?/p>

      pd_flags:表示頁(yè)面狀態(tài)。

      pd_lower:執(zhí)行l(wèi)ine pointers末尾,也就是空閑空間的起始位置。

      pd_uppder:指向最后一個(gè)tuple,也就是空閑空間的結(jié)束為止。

      pd_special:用在索引頁(yè)中,在索引頁(yè)中它指向特殊空間的起始位置,在堆表頁(yè)面中它指向頁(yè)尾。

      pd_pagesize_version:頁(yè)面大小以及頁(yè)面版本號(hào)。

      pd_prune_xid:該xid主要用于頁(yè)面內(nèi)清理

      line pointers:該指針數(shù)據(jù)指向每一個(gè)對(duì)應(yīng)的tuple,也表示每個(gè)tuple在頁(yè)內(nèi)的偏移offset。

      那么頁(yè)頭在存儲(chǔ)數(shù)據(jù)過(guò)程中,有什么作用呢,下面通過(guò)tuple插入的過(guò)程,給大家展示下一些頁(yè)頭信息時(shí)如何更新的

      (1)假設(shè)有一張表僅包含了一個(gè)tuple,那么該page header的pd_lower指向line pointers的第一個(gè)。在line pointers末尾和最后一個(gè)tuple之前的空間被稱為free space。為了能夠唯一確定頁(yè)內(nèi)的tuple,常用ctid(block number, offset)唯一確定對(duì)應(yīng)的tuple。

      (2)當(dāng)插入第二個(gè)tuple,則生成line pointer遞增,并指向第二個(gè)tuple。與此同時(shí),pd_lower、pd_upper更新對(duì)應(yīng)的指向,具體可見(jiàn)下圖說(shuō)明。

      由此可見(jiàn),隨著數(shù)據(jù)的插入,頁(yè)頭信息也在不斷實(shí)時(shí)更新。

      總結(jié):當(dāng)然GaussDB(DWS)數(shù)據(jù)庫(kù)不僅僅只有行存這一種存儲(chǔ)格式,還有另外一種列存存儲(chǔ)格式,后續(xù)的文章中我們會(huì)對(duì)列存頁(yè)面結(jié)構(gòu)跟大家進(jìn)行講解說(shuō)明,對(duì)GaussDB(DWS)數(shù)據(jù)庫(kù)底層數(shù)據(jù)存儲(chǔ)有一個(gè)全面的認(rèn)識(shí)。

      數(shù)據(jù)倉(cāng)庫(kù)服務(wù) GaussDB(DWS) Gauss AP EI企業(yè)智能

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:閥門鎖的具體運(yùn)用實(shí)際效果是怎么樣的
      下一篇:設(shè)計(jì)院協(xié)同設(shè)計(jì)平臺(tái)有哪些項(xiàng)目(設(shè)計(jì)院協(xié)同設(shè)計(jì)平臺(tái)有哪些項(xiàng)目)
      相關(guān)文章
      国产亚洲一卡2卡3卡4卡新区 | 国内成人精品亚洲日本语音| 亚洲综合激情另类小说区| 国产亚洲色婷婷久久99精品| 在线观看亚洲成人| 国产成人综合亚洲AV第一页 | 亚洲视频欧洲视频| 亚洲黄色在线播放| 久久综合亚洲色HEZYO社区| 亚洲激情在线观看| 精品亚洲成AV人在线观看| 亚洲视频小说图片| 亚洲欧洲日韩综合| 亚洲一级片在线播放| 学生妹亚洲一区二区| 亚洲国产精品网站在线播放| 亚洲6080yy久久无码产自国产| 99亚洲精品卡2卡三卡4卡2卡| WWW国产亚洲精品久久麻豆| 亚洲爆乳无码专区www| 欧洲亚洲综合一区二区三区 | 亚洲精品国产高清嫩草影院| 相泽亚洲一区中文字幕| 亚洲精品乱码久久久久久自慰| 亚洲成AV人片在线观看无码 | 朝桐光亚洲专区在线中文字幕 | 亚洲国产精品不卡毛片a在线| 国产精品V亚洲精品V日韩精品| 国产AV无码专区亚洲AWWW| 久久久久久久尹人综合网亚洲| 久久久亚洲精品视频| 亚洲美女一区二区三区| 中中文字幕亚洲无线码| 亚洲成a人片在线不卡一二三区 | 亚洲国产中文字幕在线观看 | 亚洲欧美成aⅴ人在线观看| 亚洲AⅤ视频一区二区三区| 国产日产亚洲系列| 久久亚洲AV成人无码国产| 亚洲人成在线播放| 亚洲av无码专区首页|