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