MySQL篇---第八篇

系列文章目录


文章目录

  • 系列文章目录
  • [一、说说什么是 MVCC?](#一、说说什么是 MVCC?)
  • [二、MVCC 可以为数据库解决什么问题?](#二、MVCC 可以为数据库解决什么问题?)
  • [三、说说 MVCC 的实现原理](#三、说说 MVCC 的实现原理)

一、说说什么是 MVCC?

多版本并发控制(MVCC=Multi-Version Concurrency Control),是一种用来解决读 - 写冲突的无

锁并发控制。也就是为事务分配单向增长的时间戳,为每个修改保存一个版本。版本与事务时间戳

关联,读操作只读该事务开始前的数据库的快照(复制了一份数据)。这样在读操作不用阻塞写操

作,写操作不用阻塞读操作的同时,避免了脏读和不可重复读。

二、MVCC 可以为数据库解决什么问题?

在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,提高了数

据库并发读写的性能。同时还可以解决脏读、幻读、不可重复读等事务隔离问题,但不能解决更新

丢失问题。

三、说说 MVCC 的实现原理

MVCC 的目的就是多版本并发控制,在数据库中的实现,就是为了解决读写冲突,它的实现原理主

要是依赖记录中的 3 个隐式字段、undo 日志、Read View 来实现的。

相关推荐
工业甲酰苯胺4 分钟前
使用 C# 和 SQL Server 自动化邮件中的用户分配数据处理
数据库·c#·自动化
Antoine-zxt8 分钟前
MySQL数据脱敏技术全解析:从原理到可视化实践
数据库·mysql
UCH1HA8 分钟前
mysqlbinlog基本用法
linux·运维·mysql
DemonAvenger11 分钟前
深入Redis Stream:打造高效消息队列系统的实战指南
数据库·redis·性能优化
萧曵 丶11 分钟前
MySQL Undo/Redo Log详解
数据库·mysql
虎啊兄弟20 分钟前
RocketMQ面试题
数据库·rocketmq
J_liaty21 分钟前
MySQL EXPLAIN 深度解析与 SQL 优化实战
数据库·sql·mysql
努力的小郑22 分钟前
SQL 性能避坑:为什么阿里强制禁用 ORDER BY RAND()?
java·mysql·性能优化
W001hhh22 分钟前
数据库实训Day005上午
数据库
源代码•宸25 分钟前
goframe框架签到系统项目开发(补签逻辑实现、编写Lua脚本实现断签提醒功能、简历示例)
数据库·后端·中间件·go·lua·跨域·refreshtoken