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

PostgreSQL事务与并发清理

1.并发清理概述

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

1. 移除死元组

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

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

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

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

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

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

3. 其他

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

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

2.伪代码描述清理的过

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

  • 第一部分

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

  • 第二部分

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

  • 第三部分

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

  • 后续处理

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

http://www.xdnf.cn/news/3206.html

相关文章:

  • 阿里云服务迁移实战: 06-切换DNS
  • scGPT-spatial:持续预训练scGPT用于空间转录组
  • 【diffusers 进阶之 PEFT 入门(五)】LoRA 权重如何接着训练?踩坑总结和解决方案
  • 在宝塔面板中安装OpenJDK-17的三种方法
  • K8S - 从零构建 Docker 镜像与容器
  • OpenCV 图形API(73)图像与通道拼接函数-----执行 查找表操作图像处理函数LUT()
  • AdaBoost算法的原理及Python实现
  • Vue ui初始化项目并使用iview写一个菜单导航
  • BUUCTF——Fakebook 1
  • UE 材质 条纹循环发光
  • Android compileSdkVersion、minSdkVersion、targetSdkVersion的关系以及和Unity的关系
  • Qwen3本地化部署,准备工作:SGLang
  • K8S - 从单机到集群 - 核心对象与实战解析
  • 同时启动俩个tomcat压缩版
  • C# 在VS2022中开发常用设置
  • Python 爬取微店商品列表接口(item_search)的实战指南
  • 如何在Windows上实现MacOS中的open命令
  • 网工_ICMP协议
  • Linux-04-用户管理命令
  • Java List分页工具
  • 排序算法——选择排序
  • 微格式:为Web内容赋予语义的力量
  • 【Linux 网络】网络工具ifconfig和iproute/iproute2工具详解
  • 端到端观测分析:从前端负载均衡到后端服务
  • 进程、线程、进程间通信Unix Domain Sockets (UDS)
  • 《操作系统真象还原》第十一章——用户进程
  • Spring 框架中的常见注解讲解
  • Qt窗口关闭特效:自底而上逐渐消失
  • google colab设置python环境为python3.7
  • 提高程序灵活性和效率的利器:Natasha动态编译库【.Net】