事务的隔离级别和传播机制

一 数据库的四大特性:
1.原子性:指事务所包含的操作要么全部成功,要么全部失败回滚。
2.一致性:指事务执行之前和执行之后都必须处于一致性状态。
比如A账户和B账户加起来总共100快,那么不管AB之间如何转帐,AB加起来还的是100块,这就是事务的一致性。
3.隔离性:指多个用户并发访问数据库时,数据库为每个用户开启的事务不能被其他事务所干扰,多个并发事务要相互隔离。
4.持久性:指一个事务一旦提交了,那么对数据库中数据的改变就是永久的,即使数据库发生故障,也不会丢失提交事务的操作。

二:事务的隔离级别:

当多个线程都开启事务操作数据库中的数据时,数据库要进行隔离操作,以保证各个线程获取数据的准确性。
首先我们先了解一下如果不考虑隔离级别会发生什么问题。
1)脏读:是指一个事务处理过程中读取了另一个未提交的事务中的数据。
 当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问该数据,就会造成两个事务得到的数据不一致。例如:用户A向用户B转账100元,对应SQL命令如下
    update account set money=money+100 where name=’B’;  (此时A通知B)
    update account set money=money - 100 where name=’A’;
 当只执行第一条SQL时,A通知B查看账户,B发现确实钱已到账(此时即发生了脏读),而之后无论第二条SQL是否执行,只要该事务不提交,则所有操作都将回滚,那么当B以后再次查看账户时就会发现钱其实并没有转。
2)不可重复读:是指一个事务范围内多次查询同一数据却

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值