事物隔离级别的理解

事务的状态:开始,提交,回滚。

  1. 事物A和事物B之间具有一定的隔离性
  2. 隔离性有隔离级别(4个) 
    • 读未提交:read uncommitted
    • 读已提交:read committed
    • 可重复读:repeatable read
    • 串行化:serializable

理解:

隔离是相对于多个事务的执行来说的,也就是线程并发时所进行的处理。

1.读未提交:read uncommitted

多个事务同时执行的时候,相互之间是透明的。事务a修改的数据会被事务b拿去接着处理,如果最后事务a回滚了,那么事务b处理的就是脏数据(错误数据)。

A-start A update B-start B read B-end A rollback or update A-end 

2.read committed 读已提交


不可重复读相对于本事务(A)来说 其他事务(B)做了修改,不可重复读就是读到了被修改了的数据,即两次读的数据不一样
  A修改 B修改

 A-start A read B-start B update B-end A-update(此时数据已经不一致了) A-end

问题:

可能出现不可重复读、幻读,大多数数据库默认级别(SQL Server Oracle)

3.可重复读:repeatable read

当前事务执行期间对其他并行的事务所处理的数据是不可见的。

4.串行化:serializable

所有并行事务排队执行。

参考:

https://blog.csdn.net/gwnszbd/article/details/79614935

https://blog.csdn.net/w_linux/article/details/79666086

如果错误,欢迎指正。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值