InnoDB的四种隔离级别

本文深入探讨了InnoDB如何通过四种SQL92标准的事务隔离级别解决并发事务带来的问题,包括脏读、不可重复读及幻读。详细介绍了读未提交、读已提交、可重复读与串行化的原理及其在大数据高并发场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

google所得

总结:

并发事务会互相受影响,可能会导致事务产生

  • 脏读
  • 幻读
  • 不可重复

 

为了解决此类问题,InnoDB实现了sql92的四种标准:

  • · 读未提交
  • · 读已提交
  • · 可重复读
  • · 串行化

读未提交:select未加锁,可能会产生脏读(一致性最差,并发性最差

 

读提交(rc): 普通select快照读,对select/insert/update使用记录锁,可能会产生不可重复读

 

可重复读(rr): 普通的select快照读,对select/insert/update根据条件查询情况,会使用记录锁或间隙锁和临时锁,以免读取到幻影记录

 

串行化:select隐式转化为select ... in share mode,会被update与delete互斥(一致性最好,并发性最差

 

InnoDB默认的是rr,使用最多的是rc 在互联网大数据,高并发量的场景下,几乎用不到串行化与读未提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值