PG从入门到精通
pgjt
热门课程
400电话

免费咨询热线
400-090-9964

PG从入门到精通

PostgreSQL技术大讲堂 - 第16讲:元组(行)结构与dml操作

时间:2023-05-19 来源:

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。

Part 16:元组(行)结构与dml操作

内容1:PostgreSQL行结构

内容2:DML操作方式

内容3:块空间清理


· 元组(行)结构

t_xmin保存插入此元组的事务的txid。

t_xmax保存删除或更新此元组的事务的txid。如果此元组未被删除或更新,则t_xmax设置为0,这意味着无效。

行头信息

· 块中的行结构

工具介绍

· Pageinspect工具

PostgreSQL提供了一个扩展pageinspect,它是一个贡献模块,用来显示数据库页面的内容。

该pageinspect模块提供的功能允许我们从底层检查数据库页面的内容,这对于调试非常有用。所有这些功能只能由超级用户使用

· 使用方法:

CREATE EXTENSION pageinspect;SELECT lp as tuple, t_xmin, t_xmax, t_field3 as t_cid, t_ctid FROM heap_page_items(get_raw_page('tbl', 0));


DML操作

· Insertion

· Deletion

· Update

执行第一个更新命令时,通过将txid 100设置为t_xmax,逻辑上删除Tuple_1,然后插入Tuple_2。然后,将元组1的t_ctid重写为指向元组2。

当执行第二个UPDATE命令时,与第一个UPDATE命令一样,Tuple_2在逻辑上被删除,Tuple_3被插入。

块空间清理

· Vacuum操作

块中被删除的行的是逻辑上删除,物理上还保留在块中,如果长时间不清理,会造成垃圾空间膨胀,设想,如果一个块中有50%垃圾,那么就浪费50%的存储空间,如果读到内存,也会浪费50%的内存空间,所以需要定期的清理,而清理的工作由AutoVacuum来操作,或者我们也可以手动操作。

pg_freespacemap插件可以很好的监测块中空间的使用情况,可当作full vacuum操作的参考信息。

以上就是Part 16 - PostgreSQL 元组(行)结构与dml操作 的内容,欢迎进群一起探讨交流QQ交流群:752027153微信交流群:联系客服拉你进微信PG交流群钉钉交流群:35822460,钉钉群专门有视频讲解


版权所有@北京神脑资讯技术有限公司(CUUG,中国UNIX用户协会) Copyright ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com www.cuug.net

电话:010-59426307 010-59426319 邮政编码:100089

地址:北京市海淀区北清路164号28-38号院