目录
一、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(未来的)事务,是不可见的;

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

被折叠的 条评论
为什么被折叠?



