【MySQL】MVCC(多版本并发控制)、RR、RC、MySQL中的日志

本文详细介绍了MySQL中的多版本并发控制(MVCC)原理,包括MVCC如何提高并发性能并解决事务隔离问题。此外,还讲解了当前读与快照读的区别,以及RC(读已提交)和RR(可重复读)隔离级别的不同。同时,文章讨论了MVCC在MySQL中通过隐式字段、undo日志和Read View实现的具体细节,并提及了MySQL的日志系统,如redo log、undo log、binlog等的作用和应用场景。
摘要由CSDN通过智能技术生成

参考博客:正确的理解MySQL的MVCC及实现原理

一、MVCC是什么?

多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。
说人话:维持一个数据的多个版本,使得读写操作没有冲突。(理想概念)

凡是涉及到“写”的并发操作,就可能有线程安全问题要解决。(注意上边是读-写操作)


数据库的并发操作有三种:

  • 读-读:不存在任何问题,也不需要并发控制;
  • 读-写:有线程安全问题,可能会造成事务隔离性问题,例如脏读、幻读、不可重复读;
  • 写-写:有线程安全问题,可能会存在更新丢失问题。

MVCC的好处:
1、提高数据库并发性能,可以在读操作时不用阻塞写操作,或者是写操作时不用阻塞读操作,做到不加锁,非阻塞并发读。
2、可以解决脏读、幻读、不可重复读等事务隔离问题,但不能解决更新丢失问题。

方案:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值