91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

POSTGRESQL的底層存儲原理是什么

發布時間:2021-07-04 10:40:30 來源:億速云 閱讀:1177 作者:Leah 欄目:大數據

今天就跟大家聊聊有關POSTGRESQL的底層存儲原理是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1 從對比來看POSTGRESQL 的數據庫(非INSTANCE 那個級別的數據庫),SQL SERVER 的DBA 可以和理解 SQL SERVER 對INSTANCE 和數據庫的概念一樣,不需要費勁,MYSQL 的DBA 也是一樣。 ORACLE的DBA 需要理解,這里的數據庫就是ORACLE中一堆同樣用戶下的表的集合,叫數據庫。非INSTANCE的那個概念。

下圖就是一個POSTGRES QL INSTANCE 中包含的數據庫,有一些事自建的,有些是系統的數據庫, oid是每個數據庫的OBJECT_ID,這點很類似SQL SERVER 中每個對象都有一個OBJECT_ID。

POSTGRESQL的底層存儲原理是什么

創建一個表company, 這里展示他的表結構,通過查詢COMPANY的表結構,發現查詢語句的寫法的確和PL/SQL 類似,看來SQL SERVER 和MYSQL 在處理表關聯是一路的, ORACLE 和 POSTGRES QL 在寫表關聯是一個思路。

POSTGRESQL的底層存儲原理是什么

那這個表的實體文件到底存在哪里,

POSTGRESQL的底層存儲原理是什么

POSTGRESQL的底層存儲原理是什么

一般一個表會有三個文件,表的數據文件, _FSM _VM 三個文件,組成,FSM 和 VM 和表的數據頁面管理,以及數據清除有關。

POSTGRES QL 對用戶是比較友好的,例如你要查當前庫中的COMPANY表的一些信息,這是其他數據庫都做的不足到的。

POSTGRES QL 僅僅需要輸入 \dt company,直接將結果就輸出了

POSTGRESQL的底層存儲原理是什么

相對其他數據庫要簡單的快速方便的多。

通常POSTGRESQL 中每個表是存儲在多個固定的 8KB的頁面中的,表存儲在HEAP的文件中,并且由于頁面的組織方式和 ORACLE 有些相似,通過item 指向 數據塊的方式,下圖畫的比較粗糙,實際上POSTGRESQL在每個頁面中的設計是很巧妙的。

POSTGRESQL的底層存儲原理是什么

通過相關函數(POSTGRESQL 默認不按照,自己源碼編譯,此處不再介紹安裝過程)

POSTGRESQL的底層存儲原理是什么

通過上面的命令我們可以分析POSTGRESQL 的頁面基本信息

如果我們想知道這個頁面到底有多少空間還可以使用, 使用 UPPER - LOWER 就可以得到我們剩下的空間,并且頭部占用  24B 每個 ITEM 占用 4B,由于元祖(data)的長度并非完全一致,所以這里面通過 alignmentpadding 來補齊元祖,提高I/O的性能,一般64位的機器的長度為8K

下面我們繼續分析,POSTGRESQL 中的元祖信息(DATA),通過下圖

我們可以看到,每一個數據行對應的CTID 和 每一行占用的PAGE中的大小

(SQL SERVER 里面也有類似的函數可以查看,并且一眼就可以看出和 ORACLE, POSTGRESQL 之間的數據頁面的組織不同)

POSTGRESQL的底層存儲原理是什么

大致一行的數據是上面圖組成的(畫的還是不仔細t-min  t-max 少X 應為 t-xmin  t-xmax ,見諒)


POSTGRESQL的底層存儲原理是什么

主要元祖的創建transaction 號 T-XMIN

       元祖的刪除transaction 號 T-XMAX

       CTID 

        t_hoff 數據偏移量

        data    數據組成

未來驗證上面的行結構,新建一個表 varchar(8000) ,并且大量輸入字符,見下面的圖,大家可以很清楚的查看,頁中的truple(元祖的)偏移量和占用的空間

POSTGRESQL的底層存儲原理是什么

POSTGRES QL ,在數據存儲底層設計上,和ORACLE 基本相似,并且也是堆表進行數據的存儲,這在很大一方面驗證了,這樣的底層設計有利于大數據的處理,也驗證了部分最近很大一部分機構和企業的在 ORACLE 轉型中,選擇POSTGRES QL 來代替 ORACLE 數據庫的可行性。

看完上述內容,你們對POSTGRESQL的底層存儲原理是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇东市| 郸城县| 珠海市| 思茅市| 莆田市| 海城市| 通化市| 任丘市| 白银市| 聂荣县| 沂水县| 延庆县| 武隆县| 仙居县| 东莞市| 达尔| 微山县| 玉田县| 永新县| 全州县| 贞丰县| 宽甸| 循化| 扬中市| 慈利县| 个旧市| 甘谷县| 昭通市| 高陵县| 犍为县| 濮阳市| 阿尔山市| 无极县| 白河县| 汕尾市| 丰城市| 社会| 六枝特区| 德化县| 乌什县| 高青县|