互联网服务PostgreSQL

mvcc的实现,db2和pg有啥不同?

1:db2 的mvcc ,写不阻塞读,读不阻塞写,的实现方法,希望能讲讲底层的2 :pg中mvcc的实现方法 ,显示全部

1:db2 的mvcc ,写不阻塞读,读不阻塞写,的实现方法,希望能讲讲底层的

2 :pg中mvcc的实现方法 ,

收起
参与5

查看其它 1 个回答anikikong的回答

anikikonganikikong课题专家组数据库运维工程师中国民生银行

db2没有mvcc, 只有已提交读和脏读这种类型的并发控制。内部通过内存里的锁机制来实现。有时候需要从日志里找到历史页面来获取非脏读的信息。
PG是追加更新来实现mvcc。数据insert时候会加上xmin事务号,update的数据并不删除原数据,而是加上删除事务号xmax,然后追加插入新版本的数据。delete也是加删除事务号xmax。通过比对事务号和xmin xmax来判断数据是否可见,从而实现MVCC。这种方式会带来数据和索引膨胀的问题,需要注意。

银行 · 2022-01-19
浏览667

回答者

anikikong
数据库运维工程师中国民生银行
擅长领域: 数据库灾备双活

anikikong 最近回答过的问题

回答状态

  • 发布时间:2022-01-19
  • 关注会员:3 人
  • 回答浏览:667
  • X社区推广