【深入理解数据库原理】MVCC 原理

深入理解数据库原理
以实战为基础,以数据库原理为基础,结合实战,深入理解数据库原理。
wangxiaoming

MVCC 原理

事务的4个隔离级别

  • 读未提交
  • 读已提交
  • 可重复读
  • 串行化

  • 什么是脏读

简单说,读了一条未提交的数据

  • 什么是不可重复读?

一个事务读取了另外一个事务修改后记录
强调的是 update 和delete ,只需要锁住满足条件的记录即可

  • 什么是幻读

一个事务读取了另外一个事务插入的数据,强调的是 insert ,要锁住满足条件及相近的记录。

MYSQL 中默认的隔离级别是可重复读,可解决脏读和不可重复读的问题。但是不能解决幻读的问题。
Oracle 默认的是Read Commit 读已提交,可以避免脏读的问题。

MVCC 用来解决什么问题?

一般解决不可重复读和幻读问题,是采用锁机制实现,有没有一种乐观锁的问题去处理,可以采用 MVCC 机制的设计,可以用来解决这个问题。取代行锁,降低系统开销。

MVCC 是啥?

MVCC 的英文全称是 Multiversion Concurrency Control ,中文意思是多版本并发控制技术。原理是,通过数据行的多个版本管理来实现数据库的并发控制,简单来说就是保存数据的历史版本。可以通过比较版本号决定数据是否显示出来。读取数据的时候不需要加锁可以保证事务的隔离效果。

wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付19.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值