新网创想网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

如何用PG的pageinspect工具进行查看分析

这期内容当中小编将会给大家带来有关如何用PG的pageinspect工具进行查看分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

成都创新互联公司是一家专注于成都网站建设、网站制作与策划设计,武威网站建设哪家好?成都创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:武威等地区。武威做网站价格咨询:18980820575

如果使用MySQL 相对页面的层次进行一些了解,估计你就的找大佬们的工具集合,并且为此膜拜大佬们,但PG并不需要这样,PG自身自带的pageinspect 工具,就可以让你对页面级别的层次来进行一个 “透心凉” 的查看和分析,并不在为此苦恼。

首先确认您是否拥有了 pageinspect 这个 extension ,下图通过查看pg_extension这个表您可以确认,当前您的PG上已经安装了这个extension.

如何用PG的pageinspect工具进行查看分析

如果没有请 create extension pageinspect; 执行这条预计在您当前的数据块中,如果还不行,请您确认您的PG 安装与编译是否正常。

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

如何用PG的pageinspect工具进行查看分析

通过上面的的图,是可以推理出数据存储是从页尾开始的,数据的插入顺序与步进之间的关系。

如何用PG的pageinspect工具进行查看分析

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

如何用PG的pageinspect工具进行查看分析

lower = 72 , 通过这里可以获知当前PG的表TEST 中曾经有过多少tumple(在这一刻),PG的每页有28bytes 的页头,同时每个指针是4bytes ,(72 - 28)/4 = 11 ,证明当前的指针有11个。 

我们插入一条记录

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

如何用PG的pageinspect工具进行查看分析

从上图可以看出,指针并未有变化,并通过查看数据和页面的情况,看到新插入的记录,使用了之前空出的 ctid (0,1) 位置,所以指针并不需要在重新分配。

我们继续在插入两条记录,可以看出指针分配了4个字节,并且新的记录也插入了未分配的空间,每行的偏移量是64bytes

如何用PG的pageinspect工具进行查看分析

我们删除 ID > 5 的记录 

如何用PG的pageinspect工具进行查看分析

然后 vacuum test表

如何用PG的pageinspect工具进行查看分析

通过命令我们也可以看到 vacuum 后的空间回收了,并且页头也重新标记了次页面的容量,但指针是不在回收了。

如何用PG的pageinspect工具进行查看分析

通过上面几个简单的命令就可以,理解一些枯燥乏味的PG 某些原理,也是不错的体验。

如果还不理解上面的意思可以看下面这个图(由于信息量太大,所以只能截断成两个图)

如何用PG的pageinspect工具进行查看分析

如何用PG的pageinspect工具进行查看分析

这两张图拼在一起,呈现的就是一个完整的页面上面28个字节头,+ 每个指针  下面就是你存储的每行数据,所以在此证明了页面存储的方式和逻辑中间的0 都是未占用的空间。

我想到此也就没有什么人不在不理解 PG的页面了,试问还有那个数据库在不通过第三方的插件或软件的情况下,能如此通透的展现一个页面在你面前。

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

相关的页面获得的源代码,将页面的内容memcpy到buffer 然后给大家展现出来。

如何用PG的pageinspect工具进行查看分析

那如果有人问,你的数据到底占用了多少个页面,我看看看怎么来通过某种方式来回答他。

1  一个页面我有多少数据

2  一共有多少行数据

2 /1 约等于 多少页面

我们看看上面的算法是不是可以应用到PG 中

如何用PG的pageinspect工具进行查看分析

如何用PG的pageinspect工具进行查看分析

如何用PG的pageinspect工具进行查看分析

从结果看,还是比较准确的。

上述就是小编为大家分享的如何用PG的pageinspect工具进行查看分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


分享文章:如何用PG的pageinspect工具进行查看分析
链接分享:http://wjwzjz.com/article/iespdi.html
在线咨询
服务热线
服务热线:028-86922220
TOP