了解MVCC
创始人
2024-11-06 01:42:18
0

概念

MVCC,全称Multi-Version Concurrency Control,即多版本并发控制,是一种并发控制的方法,维护一个数据的多个版本,使得读写操作没有冲突,快照读为MySQL实现MVCC提供了一个非阻塞读功能。MVCC的具体实现还要依赖数据库记录中的三个隐式字段,undo log,readView。

当前读

读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。对于我们日常的操作,如:select...lock in share mode(共享锁),select... for update、update、insert、delete(排他锁)都是一种当前读。

快照读

简单的select(不加锁)就是快照读,快照读,读取的是记录数据的可见版本,有可能是历史数据,不加锁,是非阻塞读。
  Read Committed:每次select,都生成一个快照读。
  Repeatable Read:开启事务后第一个select语句才是快照读的地方。
  Serializable:快照读会退化为当前读。

ibd2sdi  ibd文件名  这条指令可以查看对应ibd文件中的信息。

undo log版本链

在执行修改操作前undo log会记录修改前的操作

执行修改后DB_TRX-ID和DB_ROLL_PTR都会进行相应的更新DB_TRX-ID更新为当前事务id DB_ROLL_PTR指向上一条记录在undo log中的存放地址

 readview

min_ids 当前还未提交的事务id集合

min_trx_id 最小活跃事务id

max_trx_id 预分配事务id 当前最大事务id+1 因为事务id是自增的

creater_trx_id ReadView创建时的事务id

trx_id代表当前修改记录的事务id

 当前隔离级别为RC

每执行一次快照读都会生成ReadView

这次读取的记录应该是DB_TRX-ID = 2 的数据

 这次读取的记录应该是DB_TRX-ID = 3 的数据

  当前隔离级别为RR

仅在事务第一次执行快照时生成ReadView后续复用

总结 

redo log保证了事务的持久性

undo log保证了事务的原子性

redo log+undo log保证了事务的一致性

MVCC+锁保证了事务的隔离性

相关内容

热门资讯

三分钟科研!wpk微扑克模拟器... 三分钟科研!wpk微扑克模拟器,aapoker外挂(总是真的有挂)1、aapoker外挂透视辅助简单...
总算了解!wpk ai检测(辅... 总算了解!wpk ai检测(辅助)本来真的有挂(2023已更新)(哔哩哔哩)软件透明挂微扑克wpk插...
九分钟推荐!德州aa扑克平台,... 九分钟推荐!德州aa扑克平台,wpk真的有外挂(一般真的有挂)1、下载好wpk真的有外挂辅助软件之后...
发现一款!德扑输赢概率计算器(... 发现一款!德扑输赢概率计算器(透视)其实真的有挂(2021已更新)(哔哩哔哩)1、机器人多个强度级别...
7分钟技巧!aapoker软件... 7分钟技巧!aapoker软件有猫腻吗,德扑数据软件(其实真的有挂);1、首先打开德扑数据软件最新版...
发现玩家!wpk俱乐部有外挂吗... 发现玩家!wpk俱乐部有外挂吗(辅助)果真真的有挂(2023已更新)(哔哩哔哩);1、起透看视 透明...
7分钟黑科技!德扑之星玩的是啥... 7分钟黑科技!德扑之星玩的是啥,德州之星外挂(的确真的有挂)1、这是跨平台的德州之星外挂黑科技,在线...
科普常识!微扑克脚本代写(透视... 科普常识!微扑克脚本代写(透视)好像真的有挂(2022已更新)(哔哩哔哩)1、该软件可以轻松地帮助玩...
四分钟技巧!德扑之星怎么在电脑... 四分钟技巧!德扑之星怎么在电脑上玩,wpk有辅助挂(一般真的有挂);1、wpk有辅助挂系统规律教程、...
大家学习交流!微扑克有机器人吗... 大家学习交流!微扑克有机器人吗(辅助)一般真的有挂(2024已更新)(哔哩哔哩)在进入辅助挂后,参与...