PG - 快照创建及可见性

本文简单介绍了PG中的快照、何时创建以及可见性

背景知识

PG中每条数据都记录了事务相关的信息:

  • t_xmin, 创建该条数据的事务id
  • t_xmax, 删除该条数据的事务id

事务id时顺序增长的整数,后创建的事务id比新创建的事务id大,快照的作用就是提供一个静态的视图,控制数据的可见性,它定义了哪些数据对哪些事务可见,对哪些事务不可见。

事务的状态有四种:

  • 正在执行
  • 已提交,
  • 已回滚
  • 子事务已提交

快照的组成

快照由一些事务id组成,这些事务id分为三部分xmin:xip:xmax

  • xmin表示创建快照时活跃的最小事务id
  • xip表示创建快照时所有活跃的事务id(猜测xip意思时x in progress)
  • xmax表示创建快照时最小未使用的事务id

由于事务id时顺序增长的整数,数值大的表示后面发生(不考虑wraparound),所以上面三个部分体现在时间轴就是下面这样:
在这里插入图片描述

可以看到,这三部分事务id把所有的事务分成了已完成的事务、未完成的事务和未开始的事务,结合快照与数据中的t_xmin和t_xmax信息就能判断快照中数据的可见性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值