栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql-MVCC多版本并发版本控制和bufferPool缓存机制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql-MVCC多版本并发版本控制和bufferPool缓存机制

书接上回:CSDN

1.MVCC多版本并发控制

mvcc(muti version Concurrent Control)多版本并发控制是mysql在可重复读和读已提交级别下的一种保证事物隔离性的机制。

面试大厂考点,不用解释特别清楚,大概讲解即可。

        mvcc内有两个重点概念:undo日志版本链(决定是否能查找到对应数据)和read view一致性视图(决定是否可见)。每次开启事物begin命令时mysql都会生成一个临时事物id,当执行具体sql时会生成真正的事物id,mysql会通过这个事物id去undo日志版本链中比对,并通过对readview生成的数组中比对最终找到当前事物数据。

1.1 undo日志版本链

undo日志版本链中有一列数据+两个隐藏字段trx_id(事物id)和回滚指针(roll_pointer)组成。指针指向上一个版本中的数据。

undo日志版本链比对规则:

1. 当前事物id

2. min_trx_id<=当前事物id<=max_trx_id,代表可能有未提交和已提交事物,可能可见也可能不可见。可见对应已提交事物,不可见对应未提交事物。

3. 当前事物id>max_trx_id,代表为未开始事物,不可见。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号