隔离级别
Read Uncommitted 隔离: 脏读:一个事务会读到另一个事务更新后但未提交的数据,另一个事务回滚后这个读到的数据就是脏数据。 Read Committed 隔离: 不可重复读:一个事务不会读到另一个事务还没有提交的数据,但可能在另一个事务提交了数据而导致几次读取的数据不一致(第二次读取会看到另一个事务提交后的最新数据) Repeatable Read 隔离: 幻读:在同一个事务内,多次执行相同范围的查询,由于其他事务插入或删除导致查询结果不一致。
幻读和不可重复读的区别:
- 不可重复读:针对某一行数据的更新(如
UPDATE),导致同一行数据的内容发生变化。(数据内容变化,行数不变) - 幻读:针对范围查询的结果集,由于其他事务的插入(
INSERT)或删除(DELETE),导致结果集的行数发生变化。 Serializable 隔离: 所有事务按照次序串行执行,因此,脏读、不可重复读、幻读都不会出现。