mysql之事务隔离级别

未提交读(READ UNCOMMITTED):
在这个隔离级别下,其他事务可以看到本事务没有提交的部分修改,因此会造成脏读的问题(读取到了其他事务未提交的部分,而之后该事物进行回滚)
这个级别的性能没有足够大的优势,但是又有很多的问题,因此很少使用.

已提交读(READ COMMITTED):
其他事务只能读取到本事务已提交的部分,这个隔离级别有不可重复读的问题,在同一个事务内的两次读取,拿到的结果竟然不一样,因为另一个事务对数据进行了更改.

可重复读(REPEATABLE READ):
可重复读隔离级别解决了上面不可重复读的问题,但是仍然有一个新问题就是幻读,当你读取id>10的数据行时,对涉及到的所有行加上了读锁,此时另外一个事务新插入一条id=11的数据,因为是新插入的,所以不会触发上面的锁的排斥,那么进行本事务下的一次查询会发现有一条id=11的数据,而上次的查询操作并没有获取到,再进行插入就会有主键冲突的问题

可串行化(SERIALIZABLE):
这是最高的隔离级别,可以解决上面提到的所有问题,因为他强制将所有的操作串行执行,这会导致并发性能急速下降,因此也不常用.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值