数据库的事务和隔离级别

事务的基本特性

  • 原子性,都做或者都不做
  • 一致性,从一个状态装换到另一个状态
  • 隔离性,一个事物执行不能被其他事物干扰
  • 持久性,事务提交后不能更改

事务的隔离级别

  • 未提交读:一个事务内部所有的操作过程,对外都是可见的。
    A ---x-----------x_a1-----------x_a2---------x_a3------>commit
    B----x----x_b1-------->x_b2---------->x_b3----------->commit
    
    则A事务的中,x_a1会读到x_b1的内容,其余的以此类推,这些都是脏数据,即脏读
  • 提交读:一个事务内部所有操作对外都不可见,之后执行前和执行后是可见的。(仍然无法避免脏读)
    A ---x-----------x---------------x--------------------------x_a3------>commit
    B----x----x_b1-------->x_b2------->x_b3----->commit
    
    A中的事务,在B没有执行完成时,都是读的原来的内容,之后提交了,x_a3就是读的提交后的内容了,原来的x也是脏数据。
  • 可重复读:一个事务在读数据时,其他事务不能对该数据进行改变操作
    上面的A事务读x,则B只能读x,不能写,因此避免了脏数据。
    幻读:如果B在A操作的区间内插入数据,则A在执行事务完成后,才会发现这一行数据,这就是幻读,如果执行区间计数操作,可能不准。
  • 串行化:所有的事务都是传行的,失去了并发的意义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值