真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用PG的pageinspect工具進(jìn)行查看分析

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何用PG的pageinspect工具進(jìn)行查看分析,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計(jì),武威網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:武威等地區(qū)。武威做網(wǎng)站價(jià)格咨詢:18980820575

如果使用MySQL 相對(duì)頁(yè)面的層次進(jìn)行一些了解,估計(jì)你就的找大佬們的工具集合,并且為此膜拜大佬們,但PG并不需要這樣,PG自身自帶的pageinspect 工具,就可以讓你對(duì)頁(yè)面級(jí)別的層次來(lái)進(jìn)行一個(gè) “透心涼” 的查看和分析,并不在為此苦惱。

首先確認(rèn)您是否擁有了 pageinspect 這個(gè) extension ,下圖通過(guò)查看pg_extension這個(gè)表您可以確認(rèn),當(dāng)前您的PG上已經(jīng)安裝了這個(gè)extension.

如何用PG的pageinspect工具進(jìn)行查看分析

如果沒(méi)有請(qǐng) create extension pageinspect; 執(zhí)行這條預(yù)計(jì)在您當(dāng)前的數(shù)據(jù)塊中,如果還不行,請(qǐng)您確認(rèn)您的PG 安裝與編譯是否正常。

select * from heap_page_items(get_raw_page('test',0)) order by lp_off desc;

如何用PG的pageinspect工具進(jìn)行查看分析

通過(guò)上面的的圖,是可以推理出數(shù)據(jù)存儲(chǔ)是從頁(yè)尾開(kāi)始的,數(shù)據(jù)的插入順序與步進(jìn)之間的關(guān)系。

如何用PG的pageinspect工具進(jìn)行查看分析

SELECT * from page_header(get_raw_page('test', 0));

如何用PG的pageinspect工具進(jìn)行查看分析

lower = 72 , 通過(guò)這里可以獲知當(dāng)前PG的表TEST 中曾經(jīng)有過(guò)多少tumple(在這一刻),PG的每頁(yè)有28bytes 的頁(yè)頭,同時(shí)每個(gè)指針是4bytes ,(72 - 28)/4 = 11 ,證明當(dāng)前的指針有11個(gè)。 

我們插入一條記錄

insert into test select generate_series(1,1), random()*100, random()*1, now();

如何用PG的pageinspect工具進(jìn)行查看分析

從上圖可以看出,指針并未有變化,并通過(guò)查看數(shù)據(jù)和頁(yè)面的情況,看到新插入的記錄,使用了之前空出的 ctid (0,1) 位置,所以指針并不需要在重新分配。

我們繼續(xù)在插入兩條記錄,可以看出指針?lè)峙淞?個(gè)字節(jié),并且新的記錄也插入了未分配的空間,每行的偏移量是64bytes

如何用PG的pageinspect工具進(jìn)行查看分析

我們刪除 ID > 5 的記錄 

如何用PG的pageinspect工具進(jìn)行查看分析

然后 vacuum test表

如何用PG的pageinspect工具進(jìn)行查看分析

通過(guò)命令我們也可以看到 vacuum 后的空間回收了,并且頁(yè)頭也重新標(biāo)記了次頁(yè)面的容量,但指針是不在回收了。

如何用PG的pageinspect工具進(jìn)行查看分析

通過(guò)上面幾個(gè)簡(jiǎn)單的命令就可以,理解一些枯燥乏味的PG 某些原理,也是不錯(cuò)的體驗(yàn)。

如果還不理解上面的意思可以看下面這個(gè)圖(由于信息量太大,所以只能截?cái)喑蓛蓚€(gè)圖)

如何用PG的pageinspect工具進(jìn)行查看分析

如何用PG的pageinspect工具進(jìn)行查看分析

這兩張圖拼在一起,呈現(xiàn)的就是一個(gè)完整的頁(yè)面上面28個(gè)字節(jié)頭,+ 每個(gè)指針  下面就是你存儲(chǔ)的每行數(shù)據(jù),所以在此證明了頁(yè)面存儲(chǔ)的方式和邏輯中間的0 都是未占用的空間。

我想到此也就沒(méi)有什么人不在不理解 PG的頁(yè)面了,試問(wèn)還有那個(gè)數(shù)據(jù)庫(kù)在不通過(guò)第三方的插件或軟件的情況下,能如此通透的展現(xiàn)一個(gè)頁(yè)面在你面前。

SELECT  get_raw_page::text FROM    get_raw_page('test', 0);

相關(guān)的頁(yè)面獲得的源代碼,將頁(yè)面的內(nèi)容memcpy到buffer 然后給大家展現(xiàn)出來(lái)。

如何用PG的pageinspect工具進(jìn)行查看分析

那如果有人問(wèn),你的數(shù)據(jù)到底占用了多少個(gè)頁(yè)面,我看看看怎么來(lái)通過(guò)某種方式來(lái)回答他。

1  一個(gè)頁(yè)面我有多少數(shù)據(jù)

2  一共有多少行數(shù)據(jù)

2 /1 約等于 多少頁(yè)面

我們看看上面的算法是不是可以應(yīng)用到PG 中

如何用PG的pageinspect工具進(jìn)行查看分析

如何用PG的pageinspect工具進(jìn)行查看分析

如何用PG的pageinspect工具進(jìn)行查看分析

從結(jié)果看,還是比較準(zhǔn)確的。

上述就是小編為大家分享的如何用PG的pageinspect工具進(jìn)行查看分析了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


標(biāo)題名稱:如何用PG的pageinspect工具進(jìn)行查看分析
網(wǎng)站URL:http://weahome.cn/article/iespdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部