MySQL学习Day29——多版本并发控制

news/2024/7/7 19:32:29

一、什么是MVCC

MVCC(Multiversion concurrency control)多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoD8的事务隔离级别下执行一致性读操作有了保证。换言之就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。

二、快照读与当前读

1.快照读

快照读又叫做一致性读,读取的是快照数据,不加锁的简单SELECT语句都是快照读,即不加锁的非阻塞读。之所以出现快照读是基于提高并发性能的考虑。在很多情况下可以避免加锁操作,降低了开销。既然是基于多版本,快照读可能读到的并不一定是数据的最新版本,而有可能是之前的历史版本。快照读的前提是隔离级别不是串行级别,串行级别下的快照读会退化成当前读。

2.当前读

当前读读取的内容是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。加锁的SELECT或者对数据库的增删改查都是当前读。

三、MVCC实现原理ReadView

MVCC实现的三个原理:隐藏字段、undo log和read view


http://lihuaxi.xjx100.cn/news/2085242.html

相关文章

01 数据结构引入 和 顺序表

阅读引言: 从本文开始给大家带来我在复习过程中写的数据结构的代码, 分享给需要的同学 一、数据结构引入 1.数据结构解决什么问题 数据结构可以将杂乱无章的数据管理起来, 提高数据的访问效率 计算机处理的对象(数据&#xff09…

爬虫入门到精通_框架篇16(Scrapy框架基本使用_名人名言的抓取

1 目标站点分析 抓取网站:http://quotes.toscrape.com/ 主要显示了一些名人名言,以及作者、标签等等信息: 点击next,page变为2: 2 流程框架 抓取第一页:请求第一页的URL并得到源代码,进行下…

一篇搞定mysql数据库基础

目录 一、MySQL具体的特点 1.关系型数据库(RDBMS): 2.MySQL是一个“客户端-服务器”结构的程序 Q1:服务器能不能知道客户端什么时候发请求?? Q2:服务器是只给一个客户端提供服务吗?? 二、M…

什么是智慧公厕?智慧公厕的应用价值有哪些?

在现代社会,城市的发展与人民生活质量息息相关。作为城市基础设施中的重要一环,公共厕所的建设及管理一直备受关注。智慧公厕作为一种公共厕所使用、运行、管理的综合应用解决方案,正逐渐在智慧城市的建设中崭露头角。那么,智慧公…

【Oracle之DataGuard的初步学习】

** 以下所有均是基于11G版本的 ** 一、DataGuard的部署方式 DG的部署最常用的方式就是直接在备库端部署一个空库然后再设置参数,但是这样做在初始同步时如果数据量过大会耗费较长的时间;相对来说这中方式比较简单不易出错。 还有一种方式就是通过rman的备…

[Leetcode] 904. 水果成篮 —— 滑动窗口

Problem: 904. 水果成篮 文章目录 思路解题方法复杂度Code 思路 需要找到连续的最多两种类型的最长序列 通过例子讲解思路:34335,left0,mid1,new_mid2 定义:现有三个下标left,mid,new_mid;其中left和mid分别…

淘宝商品详情数据

淘宝商品详情数据接口的应用场景有很多,以下是一些典型的应用场景: 商品信息展示:通过调用淘宝商品详情数据接口,可以获取商品的详细信息,如标题、价格、销量、评价等。这些信息可以用于在自己的网站或应用程序中展示…

蓝桥杯省赛 Java b组 2015年 第六届

一、题目 加法变乘法 我们都知道:123 ... 49 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015 比如: 123...10*1112...27*2829...49 2015 就是符合要求的答案。 请你寻找另外一个可能的答案,并把位置靠前的…