事务线程:
1. 脏读数据
张三从李四买东西
事务1 张三给李四转账转账成功
事务2 李四查看账户钱多了 他就发货 提交了事务
事务1 回滚
2. 不可重复读
酒店前台 2个前台 A和B
来了一个客人 这个客人想住1101号房间 前台A
来了另外一个客人这个客人找的是 前台B B把1101把房间开了给这个客人
3. 幻读(虚读)
对一个订单表查询两次,另外一个事务已经添加了新的记录之前查的事100条
现在发现是101次
为了解决上述问题,提出了一个隔离性
(1)串行化
想要完全的解决上述问题,一个办法,串行化(死锁)不推荐使用,效率太低
(2)可重复读(mysql数据库默认的隔离级别)
可以防止脏读 和不可重复读 不能防止幻读
(3)读已提交数据(oracle默认的隔离级别)
可以防止脏读数据 不可以防止不可重复读和幻读
(4)读未提交数据
所有问题都不解决 这种情况是所有隔离性中 性能最好的