1 脏读、不可重复读、幻读
1.1 脏读
如果一个事务读到了另一个事务已修改且未提交的数据,则发生了脏读现象。
1.2 不可重复读
在一个事务里面多次读取同一个数据,若前后两次读到的数据不一致,则发生不可重复读现象。
1.3 幻读
在一个事务中多次查询符合某个条件的记录(行)数量,若前后两次查询到的记录(行)数量不一致,则发生幻读现象。
2 事务隔离级别
2.1 四种事务隔离级别分别解决了什么问题?
2.2 事务隔离原理
未提交读:无锁策略
提交读:MVCC + 行锁
可重复读:MVCC + 行锁 + 间隙锁
串行读:强制事务串行执行,在每个读的数据行上加共享锁
Mysql默认的事务级别是 可重复读,Oracle默认的事务级别是 提交读。