北京oracle培训_oracle培训哪家好_CUUG官方论坛_CUUG培训怎么样_CUUG官网

 找回密码
 立即注册
查看: 318|回复: 0

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

[复制链接]
发表于 2023-5-19 11:31:26 | 显示全部楼层 |阅读模式

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,钉钉群专门有视频讲解


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|CUUG认证培训 ( 京ICP备11008061号 )

GMT+8, 2024-11-28 10:38 , Processed in 0.018523 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表