MySQL篇---第八篇

系列文章目录


文章目录

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

一、说说什么是 MVCC?

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

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

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

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

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

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

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

丢失问题。

三、说说 MVCC 的实现原理

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

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

相关推荐
xj198603194 分钟前
MySql-9.1.0安装详细教程(保姆级)
数据库·mysql
·云扬·8 分钟前
【MySQL】主从复制:原理、作用与实现方法
数据库·mysql
数据知道13 分钟前
PostgreSQL:详解 MySQL数据迁移,如何将数据平滑迁移到PostgreSQL
数据库·mysql·postgresql
番茄去哪了34 分钟前
在Java中操作Redis
java·开发语言·数据库·redis
JiaHao汤38 分钟前
一文掌握 SQL:数据定义、操作与查询完整教程
数据库·sql
白太岁42 分钟前
Redis:(3) Lua 与 Redis、基于连接池的 Facade 模式封装
数据库·c++·redis·lua·外观模式
zlp19921 小时前
Flink DataStream API 消费binlog kafka实践
数据库·flink·kafka
l1t1 小时前
利用DeepSeek和qwen 3.5辅助生成SQL优化方法幻灯片视频
数据库·sql·音视频
_千思_1 小时前
【小白说】数据库系统概念 4
数据库
专注&突破1 小时前
DeepAgents 的 Backend详解
数据库