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文件和页面

相关推荐
听雪楼主.3 小时前
Oracle Undo Tablespace 使用率暴涨案例分析
数据库·oracle·架构
我科绝伦(Huanhuan Zhou)3 小时前
KINGBASE集群日常维护管理命令总结
数据库·database
妖灵翎幺3 小时前
Java应届生求职八股(2)---Mysql篇
数据库·mysql
HMBBLOVEPDX3 小时前
MySQL的事务日志:
数据库·mysql
weixin_419658315 小时前
MySQL数据库备份与恢复
数据库·mysql
专注API从业者7 小时前
基于 Flink 的淘宝实时数据管道设计:商品详情流式处理与异构存储
大数据·前端·数据库·数据挖掘·flink
小猿姐8 小时前
KubeBlocks for Milvus 揭秘
数据库·云原生
AI 嗯啦8 小时前
SQL详细语法教程(四)约束和多表查询
数据库·人工智能·sql
杜子不疼.8 小时前
《Python学习之文件操作:从入门到精通》
数据库·python·学习
TDengine (老段)8 小时前
TDengine IDMP 高级功能(4. 元素引用)
大数据·数据库·人工智能·物联网·数据分析·时序数据库·tdengine