MySQL篇---第八篇

系列文章目录


文章目录

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

一、说说什么是 MVCC?

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

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

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

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

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

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

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

丢失问题。

三、说说 MVCC 的实现原理

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

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

相关推荐
彳亍101几秒前
如何用 Dask 替代 Pandas 实现高效 Excel 数据处理
jvm·数据库·python
音符犹如代码2 分钟前
Docker 一键部署带有 TimescaleDB 插件的 PostgreSQL
java·运维·数据库·后端·docker·postgresql·容器
程序leo源4 分钟前
Qt信号与槽深度详解
c语言·开发语言·数据库·c++·qt·c#
2301_783848656 分钟前
c++怎么把多个变量一次性写入二进制文件_结构体对齐与write【实战】
jvm·数据库·python
wang3zc13 分钟前
如何在 WooCommerce 后台按订单总金额精准筛选订单
jvm·数据库·python
大得3691 小时前
LangGraph使用
数据库
Mahir081 小时前
Redis 核心机制:数据过期策略与淘汰策略深度解析
数据库·redis·后端·缓存·面试
多敲代码防脱发1 小时前
Spring进阶(BeanFactory与ApplicationContext)
java·数据库·spring boot·后端·spring
m0_702036532 小时前
html标签如何提升可访问性_aria-label与title区别【指南】
jvm·数据库·python
会编程的土豆2 小时前
Gin 核心概念速记
数据库·后端·gin·goland