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

mysql-MVCC多版本并发版本控制和bufferPool缓存机制,第1张

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,代表为未开始事物,不可见。

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5695665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存