google所得
总结:
并发事务会互相受影响,可能会导致事务产生
- 脏读
- 幻读
- 不可重复
为了解决此类问题,InnoDB实现了sql92的四种标准:
- · 读未提交
- · 读已提交
- · 可重复读
- · 串行化
读未提交:select未加锁,可能会产生脏读(一致性最差,并发性最差)
读提交(rc): 普通select快照读,对select/insert/update使用记录锁,可能会产生不可重复读
可重复读(rr): 普通的select快照读,对select/insert/update根据条件查询情况,会使用记录锁或间隙锁和临时锁,以免读取到幻影记录
串行化:select隐式转化为select ... in share mode,会被update与delete互斥(一致性最好,并发性最差)
InnoDB默认的是rr,使用最多的是rc 在互联网大数据,高并发量的场景下,几乎用不到串行化与读未提交