【mysql】- 事务隔离级别和MVCC篇
概念
术语
- 脏写( Dirty Write ): 如果一个事务修改了另一个未提交事务修改过的数据,那就意味着发了
脏写 - 脏读( Dirty Read ) : 如果一个事务读到了另一个未提交事务修改过的数据,那就意味着发了
脏读 - 不可重复读(Non-Repeatable Read): 如果一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值,那就意味着发了
不可重复读 - 幻读(Phantom): 如果一个事务先根据某些条件查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务再次按照该条件查询时,能把另一个事务插入的记录也读出来,那就意味着发了
幻读 
隔离级别
- READ UNCOMMITTED :未提交读。
 - READ COMMITTED :已提交读。
 - REPEATABLE READ :可重复读。
 - SERIALIZABLE :可串行化。
 
对应隔离级别问题
- READ UNCOMMITTED 隔离级别下,可能发生
脏读、不可重复读和幻读问题 - READ COMMITTED 隔离级别下,可能发生
不可重复读和幻读问题,但是不可以发生脏读问题 - REPEATABLE READ 隔离级别下,可能发生
幻读问题,但是不会发生脏读和不可重复读的问题 - SERIALIZABLE 隔离级别下,各种问题都不可以发生。
 
MySQL的默认隔离级别为REPEATABLE READ
MVCC(多版本并发控制)
- 在使用
READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SEELCT操作时访问记录的版本链的过程,这样使可以使不同事务的读-写、写-读操作并发执行,从而提升系统性能 READCOMMITTD、REPEATABLE READ这两个隔离级别的一个很大不同就是:生成ReadView的时机不同,READ COMMITTD在每一次进行普通SELECT操作前都会生成一个ReadView,REPEATABLE READ只在第一次进行普通SELECT操作前生成一个ReadView,之后的查询操作都重复使用这个ReadView就好了
【mysql】- 事务隔离级别和MVCC篇的更多相关文章
- mysql事务隔离级别和MVCC
		
一.三种问题: 脏读(Drity Read):事务A更新记录但未提交,事务B查询出A未提交记录. 不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次 ...
 - 一文读懂MySQL的事务隔离级别及MVCC机制
		
回顾前文: 一文学会MySQL的explain工具 一文读懂MySQL的索引结构及查询优化 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) 就软件开 ...
 - 查询mysql事务隔离级别
		
查询mysql事务隔离级别 查询mysql事务隔离级别 分类: DB2011-11-26 13:12 2517人阅读 评论(0) 收藏 举报 mysqlsessionjava 1.查看当前会话隔离 ...
 - Mysql事务-隔离级别
		
MYSQL事务-隔离级别 事务是什么? 事务简言之就是一组SQL执行要么全部成功,要么全部失败.MYSQL的事务在存储引擎层实现. 事务都有ACID特性: 原子性(Atomicity):一个事务必须被 ...
 - mysql事务隔离级别、脏读、幻读
		
Mysql事务隔离级别本身很重要,再加上可能是因为各大公司面试必问的缘故,在博客中出现的概率非常高,但不幸的是,中国的技术博客要么是转载,要么是照抄,质量参差不齐,好多结论都是错的,对于心怀好奇之心想 ...
 - MySQL事务隔离级别(一)
		
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...
 - [51CTO]新说MySQL事务隔离级别!
		
新说MySQL事务隔离级别! 事务隔离级别这个问题,无论是校招还是社招,面试官都爱问!然而目前网上很多文章,说句实在话啊,我看了后我都怀疑作者弄懂没!本文所讲大部分内容,皆有官网作为佐证,因此对本文内 ...
 - MySQL事务隔离级别测试实例
		
https://www.cnblogs.com/huanongying/p/7021555.html MySQL事务隔离级别 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommit ...
 - MySQL事务隔离级别 解决并发问题
		
MySQL事务隔离级别 1. 脏读: 骗钱的手段, 两个窗口或线程分别调用数据库转账表,转账后未提交,对方查看到账后,rollback,实际钱没转. 演示方法: mysql默认的事务隔离级别为repe ...
 
随机推荐
- 尚硅谷ajax视频教程2
			
7.7. 尚硅谷_佟刚_Ajax_典型应用_验证用户名是否可用 整个项目的目录路径如下所示 我们首先新建立一个web工程,在webroot下面新建立一个script的文件夹,导入jquer文件 接下来 ...
 - DNS篇(详解DNS)
			
*文章来源:https://blog.egsec.cn/archives/601 *本文将主要说明:本文主要叙述什么是DNS.域名的层级.DNS 解析过程.DNS的缓存时间.DNS 的记录类型.DNS ...
 - java多线程并发执行demo,主线程阻塞
			
其中有四个知识点我单独罗列了出来,属于多线程编程中需要知道的知识: 知识点1:X,T为泛型,为什么要用泛型,泛型和Object的区别请看:https://www.cnblogs.com/xiaoxio ...
 - 入门大数据---Elasticsearch是什么?
			
Elasticsearch是谁不重要,重要的是咱们都知道百度,谷歌这样的搜索巨头吧.它们的核心技术都利用了Elasticsearch,所以我们有必要对Elasticsearch了解下! 1.Elast ...
 - Build completed with 1 error and 0 warnings in 20 ms
			
今天运行Idea,好端端的项目居然报了这个莫名其妙的错误Build completed with 1 error and 0 warnings in 20 ms. 首先排查下代码是否有问题,然后我就建 ...
 - 作为一个Java开发你用过Jib吗
			
1. 前言 Jib是Google开发的可以直接构建 Java应用的Docker和OCI镜像的类库,以Maven和Gradle插件形式提供.它最骚操作的是可以在没有Docker守护程序的情况下构建,也就 ...
 - 2020 最新省市区 sql
			
一个基于有赞的 area.js 生成的sql area.js 简单的写了一个js 生成了sql语句 sql文件 完整代码
 - Python之浅谈面向对象
			
目录 面向对象和面向过程 面向过程 面向对象 类与对象 定义类 在现实世界中:先有对象,再有类 在程序中,务必保证:先定义(类),后使用(产生对象) 产生对象 类 对象 产生对象 属性查找顺序 对象赋 ...
 - 09 . Prometheus监控tomcat+jvm
			
List CentOS7.3 prometheus-2.2.1.linux-amd64.tar.gz redis_exporter-v0.30.0.linux-amd64.tar.gz 节点名 IP ...
 - P2629 【好消息,坏消息】
			
其实刚开始看到这道题,应该很多都会想到区间DP中的合并石子,开一个2倍的空间(严格来说的话应该是2n-1),将本来的环变成一个链式的结构.然后对于得到的消息,可以预处理一个前缀和,这样就可以很方便的知 ...