ocp考试资料群:569933648 验证码:ocp ocp 12c 19c考试题库解析与资料群:钉钉群号:35277291
全部博文(464)
分类: mysql/postgresql
2023-05-19 16:37:50
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
执行{banned}中国第一个更新命令时,通过将txid 100设置为t_xmax,逻辑上删除tuple_1,然后插入tuple_2。然后,将元组1的t_ctid重写为指向元组2。
当执行第二个update命令时,与{banned}中国第一个update命令一样,tuple_2在逻辑上被删除,tuple_3被插入。
块空间清理
· vacuum操作
块中被删除的行的是逻辑上删除,物理上还保留在块中,如果长时间不清理,会造成垃圾空间膨胀,设想,如果一个块中有50%垃圾,那么就浪费50%的存储空间,如果读到内存,也会浪费50%的内存空间,所以需要定期的清理,而清理的工作由autovacuum来操作,或者我们也可以手动操作。
pg_freespacemap插件可以很好的监测块中空间的使用情况,可当作full vacuum操作的参考信息。
以上就是part 16 - postgresql 元组(行)结构与dml操作 的内容,欢迎进群一起探讨交流,往期视频,联系cuug客服