PostgreSQL冻结过程

1.冻结 过程

冻结过程有两种模式,依特定条件而择其一执行。为方便起见,将这两种模式分别称为惰性模式(lazy mode)和迫切模式(eager mode)。

并发清理(Concurrent VACUUM)通常在内部被称为"惰性清理(lazy vacuum)"。

冻结过程通常以惰性模式运行;但当满足特定条件时,也会以迫切模式运行。在惰性模式下,冻结处理仅使用目标表对应的VM扫描包含死元组的页面。迫切模式相则反,它会扫描所有的页面,无论其是否包含死元组,它还会更新与冻结处理相关的系统视图,并在可能的情况下删除不必要的clog。

图1-1 冻结元组 惰性模式

因为惰性模式可能会跳过页面,它可能无法冻结所有需要冻结的元组。

迫切模式弥补了惰性模式的缺陷。它会扫描所有页面,检查表中的所有元组,更新相关的系统视图,并在可能时删除非必需的clog文件与页面。

图1-2 冻结元组 迫切模式

2.移除不必要的提交日志文件

提交日志(clog)存储着事务的状态。 当更新pg_database.datfrozenxid时,PostgreSQL会尝试删除不必要的clog文件。 注意相应的clog页面也会被删除。

图2-1 删除不必要的clog文件和页面

相关推荐
fen_fen12 小时前
Oracle建表语句示例
数据库·oracle
砚边数影13 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库
orange_tt14 小时前
Djiango配置Celery
数据库·sqlite
云小逸14 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
肉包_51114 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
霖霖总总15 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
此刻你16 小时前
常用的 SQL 语句
数据库·sql·oracle
それども16 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
·云扬·16 小时前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb
天空属于哈夫克317 小时前
Java 版:利用外部群 API 实现自动“技术开课”倒计时提醒
数据库·python·mysql