暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

北京CUUG 2023-05-19
201











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


内容1
PostgreSQL行结构
内容2DML操作方式
内容3块空间清理


Tuples Structure

· 元组(行)结构

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










    相关阅读:

    从小白到专家 PG技术大讲堂 - Part 10:PostgreSQL数据库管理
    从小白到专家 PG技术大讲堂 - Part 11:PostgreSQL控制文件作用与管理
    PostgreSQL技术大讲堂 - 第12讲:WAL作用与管理
    PostgreSQL技术大讲堂 - 第13讲:Full-Page Writes 全页写
    PostgreSQL技术大讲堂 - 第14讲:检查点
    PostgreSQL技术大讲堂 - 第15讲:数据文件和块存储结构



    蓝蓝的天

    -->> 联系客服,进群或领取文档资料

    文章转载自北京CUUG,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论