事务的隔离级别有哪些
隔离级别定义了一个事务可能受其他事务影响的程度,MySQL支持四种隔离级别,分别是读未提交、读已提交、可重复读和串行化。
- 读未提交会出现脏读
- 读已提交会出现不可重复读。
- 可重复读是InnoDB默认的隔离级别,可以避免脏读和不可重复读,但会出现幻读。
- 通过MVCC和临键锁,能够防止大多数并发问题
- 串行化最安全,但性能较差,通常不推荐使用。
- 详细说说读未提交?
- 事务可以读取其他未提交事务修改的数据。也就是说,
- 如果未提交的事务一旦回滚,读取到的数据就会变成了“脏数据”,通常不会使用。
- 什么是读已提交?
- 读已提交避免了脏读,但可能会出现不可重复读,即同一事务内多次读取同一数据结果会不同,
- 因为其他事务提交的修改,对当前事务是可见的。
- 什么是可重复读?
- 可重复读能确保同一事务内多次读取相同数据的结果一致,即使其他事务已提交修改。
- 是MySQL默认的隔离级别,避免了“脏读”和“不可重复读”,通过MVCC和临键锁也能在一定程度上避免幻读。
- 什么是串行化?
串行化是最高的隔离级别,通过强制事务串行执行来解决“幻读”问题

浙公网安备 33010602011771号