PostgreSQL(十八)TXIDS与冻结

本文介绍了PostgreSQL中的TXID(事务ID)概念,其结构及在事务处理中的作用。讨论了冻结与解冻机制用于解决TXID环绕问题,包括惰性模式和急切模式的处理方式,以及如何查询被冻结对象和数据库信息。最后,提到使用可见性地图提高冻结操作效率。

目录

一、TXID简介

1、定义

2、txid的结构

3、TXID环绕

二、冻结与解冻

三、如何冻结TXID

1、冻结处理的两种模式

2、查询信息

3、使用_VM提高效率


一、TXID简介

1、定义

txid=事务id:当一个事务开始时,pg的事务管理系统会为该事务分配一个唯一标识符:事务id,即txid

pg中的txid被定义为一个32位的无符号整数,约能记录42亿个事务;

通常来说,txid对管理者是透明的,但我们可以利用pg的内部函数txid_current(),来获取当前事务的txid:

事务ID用来标识一个事务的先后顺序,该顺序决定了锁申请的优先权,以及访问一张表时对行的可见性规则判断

注:begin命令并不会分配txid,而是在begin之后执行的第一个DML命令,在执行时,事务管理器会分配一个txid,然后事务才算开始。

2、txid的结构

PG有一个行可见性规则的概念,由于多版本并发控制的存在,不同事务对相同表的查询结果未必是相同的(这块在十九章中详细描述);

在此规则中,visible(过去的)事务,是可见的;invisible(未来的)事务,是不可见的;

3、TXID环绕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值