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

相关推荐
vvilkim15 分钟前
SQL语言基础:从入门到掌握结构化查询语言
数据库·sql·oracle
Navicat中国1 小时前
Navicat BI 数据分析功能上线 | 数据洞察新方法
数据库·人工智能·信息可视化·数据挖掘·数据分析·navicat·bi
kngines1 小时前
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.3 商品销售预测模型
postgresql·数据分析·模型评估·arima·时间序列模型·prophet·mape
AI大模型顾潇2 小时前
[特殊字符] Milvus + LLM大模型:打造智能电影知识库系统
数据库·人工智能·机器学习·大模型·llm·llama·milvus
阿里云云原生2 小时前
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
数据库·阿里云·云计算
kaixiang3003 小时前
sqli-labs靶场18-22关(http头)
数据库
Pasregret3 小时前
MySQL 安全架构:从渗透测试到合规审计
数据库·mysql·安全架构
阿文弟3 小时前
MYSQL之索引结构,为何要用B+树
数据库·mysql
博睿谷IT99_3 小时前
MySQL OCP 认证限时免费活动 7 月 31 日 前截止!!!
数据库·mysql·开闭原则