事务的个人理解

 一、事务的理解

二、事务的特性

三、事务造成的一些问题

四、事务的隔离级别

一、事务的理解

事务是一个程序中的一系列严谨、严密的逻辑操作,是操作数据库的最小单位,由一个或者n个SQL语句组成的逻辑,一般银行会很需要事务,因为事务的特性很符合银行转账的逻辑。

二、事务的特性

1、原子性:

执行一个事务的代码时,如果有一处报错,那么这个事务的所有代码就会执行失败,要么就全部成功,要么就全部不成功,就像一根绳子上的蚂蚱,要么一起死,要么一起活。

2、一致性:

一个事务执行前和执行后必须是一个状态,对于整个数据的完整性要保持稳定。

3、隔离性:

多个事务执行时互不干扰,多个事务并发执行时保持隔离性。

4、持久性:

当一个事务正确执行后,数据库里的数据要是不改变,就永远不改变,要是改变就是永久地改变

三、事务造成的一些问题

1、脏读:

指在一个事务处理过程中读取了别的未提交事务里的数据,例如,小周在网上想买个东西要花五十,他的卡里有五百块,但是小石也在用小周的银行卡买东西准备付款460,于是小周只看见他的余额只有40了,被告知余额不足,小石也因为密码错误而买不了,这就是不可重读。

2、不可重读:

指一个事务在执行时多次查询却返回了不同的值,这是因为在查询间隔被另一个事务改修改了。

3、幻读:

指一个事务执行两次却得到不一样的结果,这是别的事务在这两次查询时修改了数据造成的。

四、事务的隔离级别

1、Read uncommitted:最低级别,任何错误都会发生

2、Read Committed:可避免脏读的发生

3、Repeatable read:可避免脏读和不可重读的发生

4、Serializable:可避免以上三种问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值