当前位置:   article > 正文

MySQL的Read View简介_mysql readview

mysql readview

在这里插入图片描述

1 问题背景

最近在研究MySQL的MVCC知识,常看到有提到一个Read View关键字。

2 前言

本文有部分知识点会比较晦涩难懂,如果对MVCC还没了解的伙伴,推荐配合阅读【MySQL笔记】正确的理解MySQL的MVCC及实现原理,再配合MySQL官方文档,综合反复阅读,才能品味其中的意义。

3 什么是Read View

官方文档原文介绍:Read View

原文:

read view
An internal snapshot used by the MVCC mechanism of InnoDB. Certain transactions, depending on their isolation level, see the data values as they were at the time the transaction (or in some cases, the statement) started. Isolation levels that use a read view are REPEATABLE READ, READ COMMITTED, and READ UNCOMMITTED.

笔者翻译:Read View是一个数据库的内部快照,该快照被用于InnoDB存储引擎中的MVCC机制。简单点说,Read View就是一个快照,保存着数据库某个时刻的数据信息。Read View会根据事务的隔离级别决定在某个事务开始时,该事务能看到什么信息。就是说通过Read View,事务可以知道此时此刻能看到哪个版本的数据记录(有可能不是最新版本的,也有可能是最新版本的)。可重复读、读已提交、读未提交,这几个隔离级别都会使用Read View

4 总结

我要查询name = 'zhangsan'的用户的记录并修改某些值,开启事务并在此时生成一个Read View快照。InnoDB根据Read View来判断'name = 'zhangsan'记录的版本链上哪个版本是可见的。怎么判断?通过把每个版本记录的trx_id隐藏字段与Read View的三个字段做比较。此处的比较涉及到算法,后面另写一篇文章详细介绍。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/900403
推荐阅读
相关标签
  

闽ICP备14008679号