Mysql事务隔离级别和MCVV(多版本并发控制)附图 ✨ 每日积累

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Mysql事务隔离级别和MCVV(多版本并发控制)附图 ✨ 每日积累

于《高性能MYSQL》一书中可以到得知


事务隔离级别


1、READ UNCOMMITED(读未提交):在这个级别中,即使没有提交,对其他事物也是可见的,事务可以读取未提交的数据,这也称之为脏读。这个会造成很多问题,从性能来说,并不比其他的隔离级别好太多,但是缺乏其他隔离级而别的好处,除非整的有非常必要的,实际应用中很少见。


2、READ COMMITED(读已提交):大多数数据库系用默认得隔离级别是这个(mysql不是),一个事务在开始时,只能看到已经提交得事务所做的修改,意思是:一个事务从开始到commit提交之前,所做的任何修改都是对其他事务不可见,即前后两次读取到的结果不一样。


3、REPEATABLE READ(可重复读:MYSQL默认的事务隔离级别):这个隔离级别解决了脏读和在同一个事务中多次读取得结果不一致。但是可重复读无法解决幻读得问题,幻读指当前事务在读取某个范围内得记录时,另外的一个事务对该范围内插入了数据,当当前事务再次读取到记录时,发现记录比之前得行数要多也就是(幻行)。mysql得InnoDB和XtraDB存储引擎通过MVCC(多版本并发控制)解决了幻读的问题。


4、SERIALIZABLE(可串行化:MYSQL最高隔离级别):通过事务得强制串行化执行,避免了幻读得问题,这个隔离级别会对读取得每一行数据加锁,可能导致大量的超时和锁征用得问题。实际上很少用这个隔离级别,只有在非常需要确保数据一致性的情况且没有并发的情况下才考虑使用这种方式。


这四种隔离级别中只有可串行话是加锁读,其他都是无锁读。


MVCC

MVCC是多版本并发控制,,mysql大多数事务型存储引擎实现的都不是简单的行级锁,为了提升并发性能得考虑,实现了MVCC,不仅是mysql,oracle和postgreSQL也是先了MVCC,的但是各自实现得机制不一样,因为没有一个标准。
MVCC是行级锁得一个变种,在一些情况下避免了加锁操作,因此开销很低,各种数据库大都是实现了非阻塞大的读操作,写操作也只是锁定必要的行。
MVCC得实现,是通过保存数据在某个时间点的快照来实现得。也就是说,不管需要执行多长时间,每个事务看到的数据都是一致的。根据事务的开始时间不同,每个事务对同一张表,同一时刻看到的数据可能不一样得。
InnoDB得MVCC,是通过每行记录后面保存两个隐藏函数得列来实现大的。这两个列,一个化是保存了行得创建时间,一个是保存行得过期时间(或者删除时间)。存储的并不是实际的时间值,而是一个系统的版本号。每开始一个新的事务,系统版本号会自动递增。

1.png

参考样图

在MySQL中建表时,每个表都会有三列隐藏字段,其中和MVCC有关系的有两个字段:数据行的系统版本号 (DB_TRX_ID)和删除版本标识(DB_ROLL_PT)

1.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
MySQL MVCC全面解读:掌握并发控制的核心机制
【10月更文挑战第15天】 在数据库管理系统中,MySQL的InnoDB存储引擎采用了一种称为MVCC(Multi-Version Concurrency Control,多版本并发控制)的技术来处理事务的并发访问。MVCC不仅提高了数据库的并发性能,还保证了事务的隔离性。本文将深入探讨MySQL中的MVCC机制,为你在面试中遇到的相关问题提供全面的解答。
217 2
|
1天前
|
SQL 安全 关系型数据库
【MySQL基础篇】事务(事务操作、事务四大特性、并发事务问题、事务隔离级别)
事务是MySQL中一组不可分割的操作集合,确保所有操作要么全部成功,要么全部失败。本文利用SQL演示并总结了事务操作、事务四大特性、并发事务问题、事务隔离级别。
【MySQL基础篇】事务(事务操作、事务四大特性、并发事务问题、事务隔离级别)
|
7天前
|
SQL 存储 关系型数据库
Mysql并发控制和日志
通过深入理解和应用 MySQL 的并发控制和日志管理技术,您可以显著提升数据库系统的效率和稳定性。
39 10
|
7天前
|
SQL 关系型数据库 MySQL
MySQL进阶突击系列(04)事务隔离级别、AICD、CAP、BASE原则一直搞不懂? | 看这篇就够了
本文详细介绍了数据库事务的四大特性(AICD原则),包括原子性、隔离性、一致性和持久性,并深入探讨了事务并发问题与隔离级别。同时,文章还讲解了分布式系统中的CAP理论及其不可能三角关系,以及BASE原则在分布式系统设计中的应用。通过具体案例和图解,帮助读者理解事务处理的核心概念和最佳实践,为应对相关技术面试提供了全面的知识准备。
|
1月前
|
关系型数据库 MySQL
mysql事务特性
原子性:一个事务内的操作统一成功或失败 一致性:事务前后的数据总量不变 隔离性:事务与事务之间相互不影响 持久性:事务一旦提交发生的改变不可逆
|
1月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
73 5
|
28天前
|
关系型数据库 MySQL 数据库
MySQL事务隔离级别及默认隔离级别的设置
在数据库系统中,事务隔离级别是一个关键的概念,它决定了事务在并发执行时如何相互隔离。MySQL提供了四种事务隔离级别,每种级别都解决了不同的并发问题。本文将详细介绍这些隔离级别以及MySQL的默认隔离级别。
|
1月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
43 1
|
1月前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
43 0
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
13 3