首先,回忆一下事务的ACID特性:
A(atomic):原子性,把事务原子性执行,要不全部成功,要不全部失败。
C(consistant):一致性,执行前后数据的一致性。这是针对全局来讲的。张三共有10000元,定期存5000,基金5000,如果他把基金全部取出存定期,那么定期10000,基金0,总数不变。
I(isolation):隔离性,事务与事务之间的隔离。
包括一下4种:
1.读未提交:事务A读取数据a—>事务B改变数据a—>事务A继续读取数据a—>数据a改变。
2.读已提交:事务A读取数据a—>事务B改变数据a. 未提交—>事务A读取数据a—>a未发生改变—>事务B提交—>事务A读取a—>数据改变。
3.可重复读:事务A读取数据a—>其他写事务无法对数据a进行操作—>事务A读取数据a.一致。
4.序列化:每个事务有序执行。串行化,效率很低,但是保证了多并发时候数据的安全。
D(duration):持久性,事务提交后,将会保存到磁盘中持久化。
mysql默认隔离级别是可重复读,oracle默认隔离级别是读已提交。