zoukankan      html  css  js  c++  java
  • postgresql MVCC详解

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

    2.postgresql mvcc原理

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

  • 相关阅读:
    MySQL客户端mysqladmin命令
    13 Linux磁盘管理
    12 Linux软件管理
    11 Linux压缩打包
    09 Linux输入输出
    08 LinuxACL控制
    07 Linux特殊权限
    06 Linux基本权限
    05 Linux用户管理
    04 Linux文件编辑
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/7544823.html
Copyright © 2011-2022 走看看