既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
①、原子性(Atomicity)
:整体 【原子性是指事务包含的所有操作要么全部成功,要么全部失败】
②、一致性(Consistency)
:数据 【事务提交后的状态合集称为一致,也就是数据库只包含事务提交的状态】
③、隔离性(Isolation)
:并发 【对于任意两个并发的事务A和B,在事务A看来,B要么在A开始之前就已经结束,要么在A结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。】
④、持久性(Durability)
:结果 【持久性是指一个事务一旦提交了,就保存到硬盘上,对数据库中的数据的改变就是永久性的】
3、事务隔离问题
由于事务可包含多个操作,在多个客户端并发访问过程,可能会发生一个事务只做了一部分操作,此时另外一个事务也开始执行,那么前一个事务的只执行部分操作的中间状态会给第二个事务造成影响。
再举个转账的例子,比如第一个事务包含A-100000
,B+100000
两个操作,当它把两个操作执行完后,正准备提交,恰在此时另外一个客户端B开启了第二个事务检查它的余额,此时已经到账了100000
元。但是第一个事务对应的哪个顾客发现转错人了,所以执行了事务回滚
,那么A、B原来多少钱还是多少钱,此时B客户的事务再查它的余额发现之前的100000
元又不见了!
①、读未提交读
(Read Uncommitted),也称脏读
,一个事务读到另一个事务未提交的内容
事务B
读看到事务A
没有提交的内容,比如对A、B账户的修改。
②、不可重复读
(Read Committed),一个事务读到另一个事务已提交的内容(主要是数据更新)
此级别解决了读未提交读
的问题,即其它事务没有提交的内容对本事务不可见。
但是事务B
能读到事务A
提交的数据更新
内容。
③、可重复读
(Repeatable Read),虚读(幻读):一个事务读到另一个事务已提交的内容(主要是数据插入)
此级别解决了读未提交读
、不可重复读
的问题,
事务B
能读到事务A
提交的数据插入
内容。
④、可串行化
(Serializable):最高的隔离级别,通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。
4、事务锁
为了解决事务隔离性问题,引入锁的概念,
只
有
拿
到
锁
的
事
务
才
可
对
数
据
库
进
行
读
写
操
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
.net/topics/618668825)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!