美文网首页
什么是事务,有什么用

什么是事务,有什么用

作者: MobotStone | 来源:发表于2022-03-21 23:52 被阅读0次

事务的特点

一系列的DML操作(不可分割):增删改查--crud

  • 原子性:要么全部可以,要么全部不可以

  • 一致性:保证事务在状态改变中数据的一致性

  • 隔离:一个事务的开启,不影响其他事务运行

  • 持久性:一个事务执行完后,写入到数据库中,并持久化到磁盘上

事务隔离级别

事务隔离级别 脏读 不可重复读 幻读
读未提交 (read-uncommitted)
读已提交 (read-committed) 不会
不可重复读 (repeatable-read) 不会 不会
串行化 (serializable) 不会 不会 不会

1. 脏读

一个事务读取了另外一个事务未提交的数据,就是脏读。

事务1: A给B转账500,但是事务未提交。
事务2: B查看了账户,发现A转过来500,本来只转300过来就好,发现多转了200,心里美滋滋。。。
事务1: A及时发现多转了200,修改了转300,提交事务。

若避开脏读,可以设置隔离级别为Read committed

2. 不可重复读

一个事务先后读取同一条记录,而事务在两次读取之间该数据被其它事务所修改,则两次读取的数据不同,这种就是不可重复读。不可重复读侧重于修改

事务1:B去买东西,卡里有500块钱,消费100,还没提交事务。
事务2:B的老婆把B的500块钱转出去了,已提交事务。
事务1:B此时提交事务,支付不了。再次读取发现卡里没钱支付。

若避开不可重复读,可以设置隔离级别为Repeatable read

3.幻读

一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。Mysql的默认隔离级别为Repeatable read,可以避免不可重复读,但是可能出现幻读的情况。侧重于新增或删除

事务1:B的老婆查看B的卡消费记录,目前共消费了500元。
事务2:B此时刚在外面请朋友吃完饭,付款了100,事务已提交。
B的老婆决定把账单打印出来,晚上跟B对账,却发现打印出来的消费为600元。她刚才明明看到是500,怎么是600,难道是幻觉?

那么可以将隔离级别设置为最高级的Serializable

相关文章

  • 什么是事务,有什么用

    事务的特点 一系列的DML操作(不可分割):增删改查--crud 原子性:要么全部可以,要么全部不可以 一致性:保...

  • 事务

    问题:事务是什么,有什么用? 事务就是一个事情,组成这个事情可能有多个单元,要求这些单元,要么全都成功,要么全都不...

  • 有什么用

    有什么用 读完万卷书 有什么用 行尽万里路 有什么用 顶天立地 有什么用 蛇行鼠步 有什么用 你看我 我看...

  • 生无可恋

    有对象有什么用,还连累他们,有朋友有什么用,还不让她们省心,有闺蜜有什么用,还怕她们担心,有父母有什么用,还让他们...

  • 引入spring事务管理

    1.1 为什么用spring事务管理? 在没有spring事务管理器之前,java开发者通常有两种事务管理器可供选...

  • 其实我没有你想像的那么坚强~

    坚强有什么用?好面子有什么用?

  • 什么是HTTPS?有什么用

    什么是HTTPS? 超文本传输安全协议(HTTPS)是HTTP的安全版本,它是用于在浏览器和网站之间发送数据的主要...

  • 【21】实用主义——什么才算是有用?

    上学有什么用?我这个不读书的人照样发大财。画画有什么用?弹钢琴有什么用?又不能当饭吃。运动有什么用?还不如睡觉呢,...

  • 无用有何用?(夜话庄子47)

    室友经常挂在口边的口头禅是这玩意有什么用?是啊,有什么用呢?会弹奏贝多芬、巴赫、肖邦有什么用?能背诵春江花月夜、长...

  • 《比如》

    比如,爱情有什么用 比如,婚姻有什么用 比如,拜佛有什么用 比如,喂养一只流浪狗有什么用 比如,我踩了你一脚道歉有...

网友评论

      本文标题:什么是事务,有什么用

      本文链接:https://www.haomeiwen.com/subject/tqvxjrtx.html