mysql 可重复读和读提交的区别
事务的四种隔离级别
未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据
提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)
可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读
串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
这里主要比较可重复读和读已提交的去呗
1 可重复读 mysql默认的事务隔离级别
在navicate打开2个页面模拟2个连接
在页面1 开启事务,查询一条数据 username = ck123
2 页面2 更新这条sql,然后查询,可知道结果已经更改为ck1234
3.重新回到页面一,在之前事务中继续查询(此时要把start transaction去掉,否则就是开启新的事务了),结果依旧是ck123
4.在页面1中提交事务,再次查询 就能查到别人更新的结果
二.读已提交 oracle 默认的隔离级别,在mysql中先将2个连接都设置为
读已提交
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;SELECT @@transaction_isolation;
在页面1中开启事务,查询数据
在页面2中更改数据
页面1中查询,可以直接读到更改的数据源
mysql 可重复读和读提交的区别相关推荐
- Mysql如何实现隔离级别 - 可重复读和读提交 源码分析
Abstract 本文会(1) 演示Mysql的两种隔离级别. (2) 跟着mysql的源代码来看看它是怎么实现这两种隔离级别的. Mysql的隔离级别 当有多个事务并发执行时, 我们需要考虑他们之 ...
- MySQL可重复读和读已提交实现原理,深入理解MVCC。
1.隔离级别 MySQL中隔离级别分为4种,提未交读.读已提交.可重复读.串行化.同时MySQL默认隔离级别为可重复读. 图片 查看MySQL隔离级别 SELECT @@tx_isolation 设置 ...
- mysql 可重复读 快照_MYSQL可重复读及原理、快照读和当前读
什么是可重复读 可重复读的实现 Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录(读已经提交的,其实是读早于本事务开始且已经提交的),但是不能看到 ...
- mysql 可重复读 悲观锁_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...
首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...
- mysql 脏读 不可重复读 幻读_mysql事务隔离级别/脏读/不可重复读/幻读详解
一.四种事务隔离级别 1.1read uncommitted 读未提交 即:事务A可以读取到事务B已修改但未提交的数据. 除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔 ...
- 三分钟了解MVCC(InnoDB如何实现可重复读和读已提交)
快照读和当前读 快照读 快照读是指读取数据时不是读取最新版本的数据,而是基于历史版本读取的一个快照信息(mysql读取undo log历史版本) , 快照读可以使普通的SELECT 读取数据时不用对表 ...
- MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介)
MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介) 一.MCVV简介 二.可重复读隔离级别能解决幻读? 三.什么是当前读和快照读? 四.MVCC的实现原理 五.RC,RR级别下的InnoD ...
- mysql可重复读和幻读的理解
mysql可重复读和幻读的理解 可重复读和幻读的定义 最后总结 参考资料 很多教程和书籍对mysql的可重复读和幻读的解释都比较含糊,本文结合原理和其他的考证,深入分析下. 这里讨论的引擎是常用的In ...
- MySQL 可重复读隔离级别与幻读
在MySQL可重复读的隔离级别下,能很大程度上避免幻读,而不能完全避免. 场景复现 环境信息: MySQL版本:5.7.23-log 隔离级别:REPEATABLE-READ 测试数据: SET NA ...
最新文章
- 基于TensorRT的BERT实时自然语言理解(上)
- Apache Commons Math3学习笔记(2) - 多项式曲线拟合(转)
- POJ 2104 K-th Number 划分树
- Shell命令-文件及目录操作之mkdir、mv
- Spring Boot与消息
- PAT甲级1097 Deduplication on a Linked List:[C++题解]遍历链表、两个vector
- hdu 2074 叠框
- Spring-Cloud组件:eureka
- jdk 9和jdk8_了解有关JDK9紧凑弦乐的信息(视频评论Charlie Hunt)
- OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程
- java方法能不能继承方法_关于java:方法链接+继承不能很好地一起玩吗?
- 图解利用栈实现递归函数的非递归计算
- azure上传代码_深入了解Azure Data Studio:更多代码和更少GUI
- 游戏筑基开发之动态数组(C语言)
- response.sendRedirect()与request.getRequestDispatcher().forward()区别
- idea 2019.2 svn 忽略文件/目录 .idea *.iml target log
- 自动阅读行业又出新招?离线阅读脚本套路满满
- Eplan教程——线束的使用
- 为什么大多公司不要培训班培训出来的Java程序员?
- php小写转大写,php怎么实现英文小写转大写