开发者社区> 问答> 正文

MVCC 机制在增删改查操作下怎么实现?

MVCC 机制在增删改查操作下怎么实现?

展开
收起
游客cum3jectrqmmy 2022-01-13 15:14:51 528 0
1 条回答
写回答
取消 提交回答
  • 在可重复读隔离级别下,MVCC机制在增删改查操作下分别按照如下方式实现:

    1.当前操作是 select 操作时,InnoDB存储引擎只会查找版本号小于或者等于当前事务版本号的数据行,这样可以保证事务读取的数据行要么之前就巳经存在,要么是当前事 务自身插入或者修改的记录。另外,行的删除版本号要么未定义,要么大于当前事务的 版本号,这样可以保证事务读取的行在事务开始之前没有被删除。

    2.当前操作是 insert 操作时,将当前事务的版本号保存为当前行的创建版本号。

    3.当前操作是delete操作时,将当前事务的版本号保存为删除的数据行的删除版本号,作为行删除标识。

    4.当前操作是 update 操作时,InnoDB 存储引擎会将待修改的行复制为新的行,将当前事务的版本号保存为新数据行的创建版本号,同时保存当前事务的版本号为原来数据行 的删除版本号。

    资料来源:《深入理解分布式事务:原理与实战》,下载链接为:https://developer.aliyun.com/topic/download?id=8201。

    2022-01-13 19:13:06
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载