MySQL篇---第八篇

系列文章目录


文章目录

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

一、说说什么是 MVCC?

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

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

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

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

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

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

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

丢失问题。

三、说说 MVCC 的实现原理

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

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

相关推荐
dinglu1030DL1 天前
CSS Grid布局如何实现网格项目排序_使用order属性改变显示顺序
jvm·数据库·python
m0_470857641 天前
c++怎么利用C++17的filesystem--copy实现高效文件夹克隆【详解】
jvm·数据库·python
duke8692672141 天前
HTML怎么区分正文与广告_HTML aside与广告位语义【技巧】
jvm·数据库·python
@北海怪兽1 天前
SQL常见函数整理 _ STRING_AGG()
android·数据库·sql
环流_1 天前
Redis过期策略
数据库·redis·缓存
北秋,1 天前
Web Security Academy 第四关:SQL 注入查询 MySQL / SQL Server 版本
数据库·sql·mysql
2401_824697661 天前
如何实现SQL存储过程状态监控_编写实时运行监控仪表盘
jvm·数据库·python
Mike117.1 天前
GBase 8c MOT 内存表落地前要先画清楚边界
服务器·数据库
iAm_Ike1 天前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
未若君雅裁1 天前
MySQL慢SQL排查实战-从定位到EXPLAIN优化闭环
sql·mysql