当前位置: 首页 > article >正文

MVCC是如何保证隔离性的

之前提到了MVCC可以一定程度上避免幻读,那具体MVCC是咋工作的呢?
需要介绍两个机制:read view和聚簇索引的两个隐藏列

read view

这个就是我们理解的快照,有四个字段,本事务id、活跃事务id列表(包含自己)、活跃事务里id最小的(还没提交的事务里最早开始的)、下一个事务id(不一定是活跃事务列表中最大值+1)

在这里插入图片描述

聚簇索引中的隐藏列

trx_id代表本行数据是由哪个事务更新的,undo_log是关键的版本控制指针。就是用read view里的m_ids看这条记录对当前事务可见与否,可见就读不可见就顺着链表向下找。
在这里插入图片描述
在这里插入图片描述

工作方式

可重复读是启动事务时生成一个 Read View,然后整个事务期间都在用这个 Read View。
读提交是在每次读取数据时,都会生成一个新的 Read View。
在这里插入图片描述


http://www.kler.cn/a/153487.html

相关文章:

  • TA-Lib学习研究笔记(八)——Momentum Indicators 上
  • 企业存货库存综合分析全流程图
  • ElasticSearch之Force merge API
  • Vue 3.0 响应式 计算和侦听
  • Elasticsearch 优化查询中获取字段内容的方式,性能提升5倍!
  • 全志XR806基于FreeRTOS下部署竞技机器人先进模糊控制器
  • 将本地项目推送到github
  • mysql主从复制-redis集群扩容缩容、缓存优化(缓存更新策略、穿透,击穿,雪崩)、mysql主从搭建、django实现读写分离
  • Mybatis核心配置文件概述
  • Centos7安装
  • 深度学习早停机制(Early Stopping)与早退机制(Early exiting)
  • Rust语言项目实战(二) - 准备键盘和终端屏幕
  • uni-app 微信小程序之自定义中间圆形tabbar
  • 电梯导航的小练习
  • 【漏洞复现】大华智慧园区综合管理平台deleteFtp接口远程命令执行
  • 解决git action发布报错:Input required and not supplied: upload_url
  • 手机上的记事本怎么打开?安卓手机通用的记事本APP
  • SVG图片选择库组件封装及使用
  • 企业真题(数组\面向对象-基础)
  • 智慧安防三大信息技术:云计算、大数据及人工智能在视频监控EasyCVR中的应用