mysql中的事物隔离级别,脏读 不可重复读 幻读

先解释下脏读、不可重复读、幻读

脏读:所谓脏读,就是读到了别的事物回滚前的脏数据,比如事物B执行过程中修改了数据X,在未提交前,事物A读取了

X,而事物B却回滚了,这样事物A就形成了脏读。

不可重复读:事物A首先读取了一条数据,执行逻辑的时候,事物B将这条数据改变了,事物A再次读取的时候,数据不再匹配,这叫做不可重复读

幻读:事物A首先根据条件索引得到N条数据,然后事物B改变了这N条数据之外的M条或者增添了M条复合事物A搜索条件的数据,导致事物A再次搜索发现有N+M条数据了,就产生了幻读。

不可重复读和幻读的比较:

两者有些相似,前者针对的是update,后者针对的是insert。

 

 

数据库事务隔离级别分为四种:

1.serializable (串行化):事务串行执行,性能比较低

2.REPEATABLE READ(重复读):保证了一个事物不会修改已经由另一个事物读取但未提交的数据,避免了“脏读取”和“不可重复读取",但是不能避免幻读,缺点是带来一定的性能损失。

3.READ COMMITTED(提交读):大部分主流数据库默认的事务等级是提交读,保证一个事务不会读到另一个并行事务已修改但未提交的数据,避免了”脏读取“,但是无法避免 可重复读取和幻读

4.READ UNCOMMITTED:事务A可以读到事务B尚未提交的改动,有可能会造成脏读,不可重复读和幻读。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值