postgresql MVCC详解
1.postgresql隐藏列
1)tableoid
表对象唯一标识符
2)xmin
插入操作的事务标识符
3)xmax
删除操作的事务标识符
4)cmin
插入操作的命令标识符
5)cmax
删除操作的命令标识符
6)ctid
行数据的物理位置标识符
示例如下:
postgresql MVCC详解

2.postgresql mvcc原理
postgresql MVCC详解
当更新一笔数据时,发现ctid发生了变化,这说明更新时,不是在原物理位置更新的,实际上是,新增了一条数据,然后将旧的数据做了标记隔离。
那么数据是否对当前事务可见的规则是什么呢?
1)对于数据的mxin>自身事务id的row一定不可见
意思是,在sql命令执行以后的crud操作,当前命令肯定是不可见的。
2)对于数据的xmin<自身事务Id且已提交,当前事务可见。
意思是,在sql命令执行之前的crud操作,必须其他事务已提交的情况下,当前事务才可见。

相关文章:

  • 2021-10-22
  • 2021-06-17
  • 2021-11-04
  • 2022-01-30
  • 2022-12-23
  • 2021-07-06
  • 2022-12-23
  • 2021-07-01
猜你喜欢
  • 2022-02-07
  • 2021-10-29
  • 2021-08-22
  • 2021-05-27
  • 2021-08-03
  • 2021-12-20
  • 2021-12-07
相关资源
相似解决方案