事务的四种隔离级别
未提交读(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 可重复读和读提交的区别相关推荐

  1. Mysql如何实现隔离级别 - 可重复读和读提交 源码分析

    Abstract 本文会(1) 演示Mysql的两种隔离级别.  (2) 跟着mysql的源代码来看看它是怎么实现这两种隔离级别的. Mysql的隔离级别 当有多个事务并发执行时, 我们需要考虑他们之 ...

  2. MySQL可重复读和读已提交实现原理,深入理解MVCC。

    1.隔离级别 MySQL中隔离级别分为4种,提未交读.读已提交.可重复读.串行化.同时MySQL默认隔离级别为可重复读. 图片 查看MySQL隔离级别 SELECT @@tx_isolation 设置 ...

  3. mysql 可重复读 快照_MYSQL可重复读及原理、快照读和当前读

    什么是可重复读 可重复读的实现 Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录(读已经提交的,其实是读早于本事务开始且已经提交的),但是不能看到 ...

  4. mysql 可重复读 悲观锁_一文带你理解脏读,幻读,不可重复读与mysql的锁,事务隔离机制...

    首先说一下数据库事务的四大特性 1 ACID 事务的四大特性是ACID(不是"酸"....) (1) A:原子性(Atomicity) 原子性指的是事务要么完全执行,要么完全不执行 ...

  5. mysql 脏读 不可重复读 幻读_mysql事务隔离级别/脏读/不可重复读/幻读详解

    一.四种事务隔离级别 1.1read uncommitted 读未提交 即:事务A可以读取到事务B已修改但未提交的数据. 除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔 ...

  6. 三分钟了解MVCC(InnoDB如何实现可重复读和读已提交)

    快照读和当前读 快照读 快照读是指读取数据时不是读取最新版本的数据,而是基于历史版本读取的一个快照信息(mysql读取undo log历史版本) , 快照读可以使普通的SELECT 读取数据时不用对表 ...

  7. MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介)

    MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介) 一.MCVV简介 二.可重复读隔离级别能解决幻读? 三.什么是当前读和快照读? 四.MVCC的实现原理 五.RC,RR级别下的InnoD ...

  8. mysql可重复读和幻读的理解

    mysql可重复读和幻读的理解 可重复读和幻读的定义 最后总结 参考资料 很多教程和书籍对mysql的可重复读和幻读的解释都比较含糊,本文结合原理和其他的考证,深入分析下. 这里讨论的引擎是常用的In ...

  9. MySQL 可重复读隔离级别与幻读

    在MySQL可重复读的隔离级别下,能很大程度上避免幻读,而不能完全避免. 场景复现 环境信息: MySQL版本:5.7.23-log 隔离级别:REPEATABLE-READ 测试数据: SET NA ...

最新文章

  1. 基于TensorRT的BERT实时自然语言理解(上)
  2. Apache Commons Math3学习笔记(2) - 多项式曲线拟合(转)
  3. POJ 2104 K-th Number 划分树
  4. Shell命令-文件及目录操作之mkdir、mv
  5. Spring Boot与消息
  6. PAT甲级1097 Deduplication on a Linked List:[C++题解]遍历链表、两个vector
  7. hdu 2074 叠框
  8. Spring-Cloud组件:eureka
  9. jdk 9和jdk8_了解有关JDK9紧凑弦乐的信息(视频评论Charlie Hunt)
  10. OpenCV学习笔记(一):Win10(x64)+Qt5.8(MSVC2013)+OpenCV3.1.0配置过程
  11. java方法能不能继承方法_关于java:方法链接+继承不能很好地一起玩吗?
  12. 图解利用栈实现递归函数的非递归计算
  13. azure上传代码_深入了解Azure Data Studio:更多代码和更少GUI
  14. 游戏筑基开发之动态数组(C语言)
  15. response.sendRedirect()与request.getRequestDispatcher().forward()区别
  16. idea 2019.2 svn 忽略文件/目录 .idea *.iml target log
  17. 自动阅读行业又出新招?离线阅读脚本套路满满
  18. Eplan教程——线束的使用
  19. 为什么大多公司不要培训班培训出来的Java程序员?
  20. php小写转大写,php怎么实现英文小写转大写

热门文章

  1. matlab数值积分的计算
  2. 程序员修炼之道---之小工到专家
  3. 爬虫案例——淘宝图片爬虫
  4. 凸轮,凸轮设计,凸轮设计软件,凸轮设计代做
  5. 解决windows server 2019安装.Net Framework3.5失败、错误代码0x80072efe、0x800f0950问题
  6. 读 沉思 第三次 有感
  7. windows - 摄像头采集
  8. 人为增加近义词 | Word2Vec的语料制作和训练
  9. JAVA语言的BUG?
  10. 怎么将html导入trados,关于Trados的组成和界面