当前位置: 首页 > news >正文

PostgreSQL事务与并发清理

1.并发清理概述

清理过程为指定的表,或数据库中的所有表执行以下任务。

1. 移除死元组

移除每一页中的死元组,并对每一页内的活元组进行碎片整理。

移除指向死元组的索引元组。

2. 冻结旧的事务标识(txid)

如有必要,冻结旧元组的事务标识(txid)。

更新与冻结事务标识相关的系统视图(pg_database与pg_class)。

如果可能,移除非必需的提交日志(clog)。

3. 其他

更新已处理表的空闲空间映射(FSM)和可见性映射(VM)。

更新一些统计信息(pg_stat_all_tables等)。

2.伪代码描述清理的过

该伪码分为两大块:一块是依次处理表的循环,一块是后处理逻辑。而循环块又能分为三个部分,每一个部分都有各自的任务。接下来会描述这三个部分,以及后处理的逻辑。

  • 第一部分

执行冻结处理,并删除指向死元组的索引元组。

  • 第二部分

移除死元组,并逐页更新FSM和VM。

  • 第三部分

针对每个表,更新与清理过程相关的统计信息和系统视图。

  • 后续处理

当处理完成后,PostgreSQL会更新与清理过程相关的几个统计数据,以及相关的系统视图;如果可能的话,它还会移除部分非必需的clog。

相关文章:

  • Electron Forge【实战】自定义菜单 -- 顶部菜单 vs 右键快捷菜单
  • 力扣HOT100——207.课程表
  • pbchsim.c中main函数流程
  • 数据库有哪些特性是什么
  • 如何用GPU Instancing来优化树木草石重复模型
  • 【网络原理】 《TCP/IP 协议深度剖析:从网络基础到协议核心》
  • 产品VP简历模板案例
  • 基于大模型的膀胱肿瘤全周期诊疗方案研究报告
  • 在柯希霍夫积分法偏移成像中,旅行时计算中振幅和相位信息
  • 斯坦福RGA软件 老版本和兼容Windows 11版本可选
  • Linux指令
  • 产品经理.产品设计.产品设计工具
  • STM32F10X OLED屏幕点亮
  • 多类型文件集中查看系统
  • 计算机考研精炼 操作系统
  • 合并两个有序数组
  • 【网工第6版】第6章 网络安全②
  • 基于 IAR Embedded Workbench 的自研 MCU 芯片软件函数与变量内存布局优化精控方法
  • 临床回归分析及AI推理
  • Vue3 + TypeScript 实现 PC 端鼠标横向拖动滚动
  • 中央网信办部署开展“清朗·整治AI技术滥用”专项行动
  • 黄育奇当选福建惠安县人民政府县长
  • 豆神教育:2024年净利润1.37亿元,同比增长334%
  • 北大深圳研究生院成立科学智能学院:培养交叉复合型人才
  • 卡尼领导的加拿大自由党在联邦众议院选举中获胜
  • 金融街:去年净亏损约110亿元,今年努力实现经营稳健和财务安全