读未提交:在支持事务的数据库中是没有这种情况的
读已提交:另一个事务中已经提交的数据在我的事务中就可以读取出来,大多数业务场景都可以使用此隔离级别,此隔离级别会出现不可重复读,幻读,幻读针对新增和删除,一般没有影响,但是不可重复读针对的是更新update,这就可以会导致问题,不可重复读就是在一个事务中两次读取同一行或几行数据,但是返回的值不一样
e.g.
1.在事务1中,Mary 读取了自己的工资为1000,操作并没有完成
2.在事务2中,这时财务人员修改了Mary的工资为2000,并提交了事务.
3.在事务1中,Mary 再次读取自己的工资时,工资变为了2000
解决办法:如果只有在修改事务完全提交之后才可以读取数据,则可以避免该问题
不可重读会导致数据不一致,比如在同一个账户,一个事务查询出来1000,然后加500更新为1500,另一个账户查询出来减200变成了800,其实最终结果应该是1300才对(另一个账户查出来如果是1500是对的,但是可能查询出来是1000,就导致了问题,数据明显不是期望的),
要让数据可以重复读,就必须对数据加锁,select * from account where id = 2 for update;
在一个事务更新提交之前另一个事务连查询都查不出来,也就谈不上不可重读了
相关推荐
查询:默认事务隔离级别 mysql> select @@tx_isolation;当前会话的默认事务隔离级别 mysql> select @@session.tx_isolation;当前会话的默认事务隔离级别 mysql> select @@global.tx_isolation;全局的事务隔离级别
事务传播特性&事务隔离级别 详细的事务传播特性&事务隔离级别
介绍数据库事务的四种隔离级别,比较不同隔离级别的区别和影响
MySQL的四种事务隔离级别 1、脏读 2、不可重复读 3、幻读
事务隔离级别 课程目标 了解 —— 事务隔离级别的概念; 理解 —— 事务隔离的四种级别; 掌握 —— 事务隔离级别的设置; 事务隔离级别 事务隔离:每一个事务都有一个所谓的隔离级,它定义了用户彼此之间隔离和交互...
本文档介绍了spring事务隔离级别的使用及详解
06-VIP-深入理解Mysql事务隔离级别与锁机制.pdf
java事务传播特性&事务隔离级别...
MySQL事务隔离级别详解,这个面试经常会面到,必会呀,哈哈
spring事务的传播特性和事务隔离级别
数据库事务隔离级别 数据库事务的隔离级别有4个,由低到高依次为 Read uncommitted:允许脏读。 Read committed: 防止脏读,最常用的隔离级别,并且是大多数数据库的默认隔离级别。 Repeatable read:可以防止脏...
数据库事务隔离级别.docx数据库事务隔离级别.docx数据库事务隔离级别.docx
NULL 博文链接:https://cuishuangjia.iteye.com/blog/964885
SQLSERVER事务隔离级别的实验研究.pdf
事务的属性:1.Propagation:用来设置事务的传播行为事务的传播行为:一个方法运行在了一个开启了事务的方法中时,当前方法是使用原来的事务还是开启了一个新
共享锁主要是为了共享读(select),如果存在事务(一个或多个)拥有对表中数据(关于锁数据的多少,视锁的粒度而定)的共享锁,不允许对锁定的数据进行更新(update)(从锁的角度讲,即不允许事务获取排他锁
前言 ...我们都知道事务的几种性质,数据库中的一致性和隔离性等是实现事务的基本思想,在系统有大量的并发访问的情况下,了解和熟练应用数据库的本身的事务隔离级别,对于写出健壮性,并发处理能力强
Spring事务隔离级别,详细解释SPring事务和事务的隔离级别
数据库事务和隔离级别