互联网服务PostgreSQL

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

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

2 :pg中mvcc的实现方法 ,

参与5

2同行回答

anikikonganikikong课题专家组数据库运维工程师中国民生银行
db2没有mvcc, 只有已提交读和脏读这种类型的并发控制。内部通过内存里的锁机制来实现。有时候需要从日志里找到历史页面来获取非脏读的信息。PG是追加更新来实现mvcc。数据insert时候会加上xmin事务号,update的数据并不删除原数据,而是加上删除事务号xmax,然后追加插入新版...显示全部

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

收起
银行 · 2022-01-19
浏览637
匪徒易真匪徒易真数据库管理员匪徒易真
db2有mvcc吗?显示全部

db2有mvcc吗?

收起
IT其它 · 2022-01-18
浏览626

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-01-18
  • 关注会员:3 人
  • 问题浏览:1316
  • 最近回答:2022-01-19
  • X社区推广