PG pageinspect使用与块空间清理学习

1.创建有时候会报错

ERROR:  could not open extension control file "/usr/local/pgsql/share/extension/pageinspect.control": No such file or directory

解决方案:

2.使用

PostgreSQL中,对于每一行数据(称为一个tuple),包含有4个隐藏字段,分别是xmin、xmax、cmin、cmax。这四个字段是隐藏的,但可直接访问。

上图:

t_xmin:在创建(insert)记录(tuple)时,记录此值为插入tuple的事务ID;

t_xmax:默认值为0.在删除tuple时,记录此值。

t_cid:当一个tuple保存到硬盘的时候,它的t_ctid被初始化为它的TID(位置信息), 如果tuple被更新过,则t_ctid被改变为最新的tuple 替换版本

t_ctid:表示数据记录的物理行当信息,指的是 一条记录位于哪个数据块的哪个位移上面。 跟oracle中伪列 rowid 的意义一样的;只是形式不一样。

3.举个例子:

在进行DML操作的时候:

insert操作:事务ID为99进行insert  'A'操作,则在这一行,t_xmin=99 userdata='A'.

delete操作:事务ID为111进行delete操作,则t_xmax会记录111,user data被标记为delete,但是不会清除。

update操作:上一篇博客介绍过,PGupdate操作代价比较大,需要先删除再插入。

在下图中第一个update命令让t_cid变化,标明这一行已经被删除了(0,1)->(0,2)->(0,3)。

4.块空间清理

Vacuum专门进行清理工作,由于PG数据进行update会产生大量的垃圾数据,原因是先delete后insert,但delete并没有实际的释放空间,只是被标记为删除状态,这并不是设计缺陷,而是为了MVCC。

Vacuum可以由AutoVacuum来操作,也可以手动操作。

postgresql Tuple之t_ctid-CSDN博客

postgresql之ctid的浅谈 - lottu - 博客园 (cnblogs.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701748.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GRE over IPsec VPN实验

一、拓扑图 二、组网需求 某企业总部、分支1、分支2分别通过 R1,R3,R4 接入互联网,配置默认路由连通公网按照图示配置 IP 地址,R1,R3,R4 分别配置 Loopback0 口匹配感兴趣流,Loopback1 口模拟业…

LeetCode题练习与总结:不同的二叉搜索树--96

一、题目描述 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5示例 2: 输入:n 1 输出&…

yolov8添加FPPI评价指标

这里写自定义目录标题 yolov8 中FPPI实现测试中调用 效果结语 续yolov7添加FPPI评价指标 。之前在yolov7中增加了fppi指标,有不少网友问有没有yolov8中增加,最近没有做算法训练,也一直没时间弄。这几天晚上抽了点时间,弄了一下。不…

WD—C++课前作业—30题

怎么会手和脚都在桌子上 目录 31,声明一个类 String,其数据成员为 char head[100],构造函数 String(char*Head)实现 head 的初始化,成员函数 void reverse()实现 head 内字符串的逆序存放,成员函数 void print()实现 head 内字符串的输出。…

tensorflow实现二分类

# 导入所需库和模块 from tensorflow.keras.layers import Dense, Input, Activation # 导入神经网络层和激活函数模块 from tensorflow.keras.models import Sequential # 导入Keras的Sequential模型 import pandas as pd # 导入Pandas库用于数据处理 import numpy as np …

TreeMap详解:Java 有序 Map 原理与实现

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

银河麒麟V10操作系统编译LLVM18踩坑记录

1、简述 要在银河麒麟V10操作系统上编译一个LLVM18,这个系统之前确实也没有用过,所以开始了一系列的摸排工作,进行一下记录。 首先肯定是要搞一个系统,所以去到银河麒麟的网站,填写了一个申请 产品试用申请国产操作系…

3dmax材质库导入方法?3dmax云渲染速度体验

3ds Max 材质库包含多种素材,如金属、木材、布料和石材等,但用户在导入材质时常遇到问题。本文将介绍如何在3ds Max中成功导入材质,并探讨使用云渲染服务来加速渲染过程,提高项目效率。 一、3dmax材质库导入教程 自建材质导入方法…

第1章 初始Spring Boot【仿牛客网社区论坛项目】

第1章 初始Spring Boot【仿牛客网社区论坛项目】 前言推荐项目总结第1章初识Spring Boot,开发社区首页1.课程介绍2.搭建开发环境3.Spring入门体验IOC容器体验Bean的生命周期体验配置类体验依赖注入体验三层架构 4.SpringMVC入门配置体验响应数据体验响应Get请求体验…

如何利用3D可视化大屏提升信息展示效果?

老子云3D可视化平台https://www.laozicloud.com/ 引言 在信息爆炸的时代,如何有效地传达和展示信息成为了各行各业的一大挑战。传统的平面展示方式已经无法满足人们对信息展示的需求,3D可视化大屏应运而生,成为了提升信息展示效果的利器。本…

JavaScript异步编程——10-async异步函数【万字长文,感谢支持】

异步函数(用 async 声明的函数) 异步函数的定义 使用async关键字声明的函数,称之为异步函数。在普通函数前面加上 async 关键字,就成了异步函数。语法举例: // 写法1:函数声明的写法async function foo1(…

Centos 6.10 安装oracle10.2.0.1

由于阿里云机房要下架旧服务器,单位未购买整机迁移服务,且业务较老不兼容Oracle11g,所以新购买一台新服务器进行安装Oracle10.2.0.1 ,后续再将数据迁移到新服务器上。 对外ip 内部ip 数据库版本 操作系统版本 实例名 源库 1…