数据库事务概念理解(通俗易懂)_通俗易懂的方式去介绍什么是事务

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

①、原子性(Atomicity):整体 【原子性是指事务包含的所有操作要么全部成功,要么全部失败】
②、一致性(Consistency):数据 【事务提交后的状态合集称为一致,也就是数据库只包含事务提交的状态】
③、隔离性(Isolation):并发 【对于任意两个并发的事务A和B,在事务A看来,B要么在A开始之前就已经结束,要么在A结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。】
④、持久性(Durability):结果 【持久性是指一个事务一旦提交了,就保存到硬盘上,对数据库中的数据的改变就是永久性的】

3、事务隔离问题

由于事务可包含多个操作,在多个客户端并发访问过程,可能会发生一个事务只做了一部分操作,此时另外一个事务也开始执行,那么前一个事务的只执行部分操作的中间状态会给第二个事务造成影响。

再举个转账的例子,比如第一个事务包含A-100000B+100000两个操作,当它把两个操作执行完后,正准备提交,恰在此时另外一个客户端B开启了第二个事务检查它的余额,此时已经到账了100000元。但是第一个事务对应的哪个顾客发现转错人了,所以执行了事务回滚,那么A、B原来多少钱还是多少钱,此时B客户的事务再查它的余额发现之前的100000元又不见了!

①、读未提交读(Read Uncommitted),也称脏读,一个事务读到另一个事务未提交的内容

事务B读看到事务A没有提交的内容,比如对A、B账户的修改。
在这里插入图片描述

②、不可重复读(Read Committed),一个事务读到另一个事务已提交的内容(主要是数据更新)

此级别解决了读未提交读的问题,即其它事务没有提交的内容对本事务不可见。
但是事务B能读到事务A提交的数据更新内容。
在这里插入图片描述

③、可重复读(Repeatable Read),虚读(幻读):一个事务读到另一个事务已提交的内容(主要是数据插入)

此级别解决了读未提交读不可重复读的问题,
事务B能读到事务A提交的数据插入内容。
在这里插入图片描述

④、可串行化(Serializable):最高的隔离级别,通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。

在这里插入图片描述

4、事务锁

为了解决事务隔离性问题,引入锁的概念,

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

.net/topics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值